C++ static void _Xout_of_range("недопустимая позиция строки")C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 C++ static void _Xout_of_range("недопустимая позиция строки")

Сообщение Anonymous »

Я новичок в C++ и программировании. В настоящее время я учусь на курсах по C++ в колледже и сталкиваюсь с проблемами, связанными с созданием приведенного ниже кода в виде динамического массива. Упражнение требует использования динамических массивов, поэтому я застрял на этом.
Я создал приведенный ниже код и перепробовал все, чтобы попытаться выяснить, в чем моя проблема. Думаю, я определил ее в методе CalculPoints(). функция. Я установил позиции cout для вывода сохраняемых данных, чтобы посмотреть, смогу ли я выяснить проблему, и она выходит из строя до того, как эта функция выводит какие-либо данные.
Я получаю сообщение об ошибке:

Код: Выделить всё

Unhandled exception at 0x00007FFAB656543C in ConsoleApplication5.exe: Microsoft C++ exception: std::out_of_range at memory location 0x000000FCDD8FF620.
Программа должна читать из файла (данные ниже), а затем сохранять его в динамическом массиве. Судя по результатам, я вижу, что это происходит.

Код: Выделить всё

TTFTFTTTFTFTFFTTFTTF
ABC54102 T FTFTFTTTFTTFTTF TF
DEF56278 TTFTFTTTFTFTFFTTFTTF
ABC42366 TTFTFTTTFTFTFFTTF
ABC42586 TTTTFTTT TFTFFFTF
Функция CalculatePoints() должна читать каждую позицию в данном массиве (каждую строку после ключа и после идентификатора студента) и сравнивать ее с первой строкой массив (ключ ответа), чтобы узнать, тот же он, другой или пробел. На основе этих значений начисляются баллы для оценки процента и оценки в другой функции. Затем они выводятся на экран вместе с ключом, студенческим билетом и результатами тестов. Это то, что требуется от упражнения.

Код: Выделить всё

#include 
#include 
#include 
#include 

using namespace std;

int main()
{
int *points;
double *percent;
string *submission;
int questions = 0;
int rows = 5;
int answer = 0;
char *grade;

void getData(string * sub, int s);
void calculatePoints(string * sub, int* pts, int s, int a, int q);
void calculateGrade(int* pts, int s, double* per, char* g);
void printData(string * sub, int* pts, char* g, int s);

cout  questions;
cout  rows;
rows = rows + 1;
submission = new string[rows];
percent = new double[rows];
grade = new char[rows];
points = new int[rows];

getData(submission, rows);
calculatePoints(submission, points, rows, answer, questions);
calculateGrade(points, rows, percent, grade);
printData(submission, points, grade, rows);

return 0;
}

void getData(string* sub, int s)
{
ifstream inFile;
inFile.open("Ch12_Ex2Data.txt");
sub = new string[s];

for (int row = 0; row < s; row++)
{
getline(inFile, sub[row]);
cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78520834/c-static-void-xout-of-rangeinvalid-string-position[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»