Вторая строка текстового файла не читается; C ++; Visual Studio

Я учусь на втором курсе информатики, и мы изучаем C ++.

Задача состоит в том, чтобы написать текстовый файл и рассчитать итоговые и средние значения на основе данных текстового файла.

Вот как выглядит мой текстовый файл:

        Angela Langston Maya Malcolm Total Average
Algebra  64.5   56.7    67.4  90.0
CS1      88.6   77.0    55.3  89.4
English  91.3   67.4    89.0  100.0
Science  100.0  89.4    80.2  91.4
Average

У меня все было хорошо, пока я не скомпилировал и не отладил. Моя программа не будет правильно печатать вторую строку моего текстового файла. Распечатывает:

-107374176.0 -107374176.0 -107374176.0 -107374176.0 -429496704.0 -107374176.0

вместо данных, которые я сохранил в текстовом файле.

Пожалуйста помоги. Я предоставлю любую дополнительную информацию, которая необходима для решения этой проблемы. Кроме того, просто напоминание, я начинающий пользователь C ++.

Обновить:
Вот код:

#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
using namespace std;

void student_heading();
void report_heading();
float average_calc(float);

int main()
{
cout << fixed << showpoint << setprecision(1);

string name1, name2, name3, name4;
string title1, title2;
string class1, class2, class3, class4, title3;
string fecha;
float algebra1, cs1, english1, science1;
float algebra2, cs2, english2, science2;
float algebra3, cs3, english3, science3;
float algebra4, cs4, english4, science4;
float algebra_total;
algebra_total = 0;
float cs_total = 0;
cs_total = 0;
float english_total = 0;
english_total = 0;
float science_total;
science_total = 0;
float algebra_avg, cs_avg, english_avg, science_avg;
float angela_avg, langston_avg, maya_avg, malcolm_avg;
float angela_total, langston_total, maya_total, malcolm_total;
angela_total = algebra1 + cs1 + english1 + science1;
langston_total = algebra2 + cs2 + english2 + science2;
maya_total = algebra3 + cs3 + english3 + science3;
malcolm_total = algebra4 + cs4 + english4 + science4;
angela_avg = average_calc(angela_total);
langston_avg = average_calc(langston_total);
maya_avg = average_calc(maya_total);
malcolm_avg = average_calc(malcolm_total);
student_heading();

cout << "What is today's date? (Example: May 1, 1996 = 05/01/1996): " << endl;
cin >> fecha;
cout << "DATE:" << fecha << "*************************************************** Page 1" << endl;
report_heading();

ifstream inData;
inData.open("infile.txt");
inData >> name1 >> name2 >> name3 >> name4 >> title1 >> title2;
cout << "         " << name1 << "  " << name2 << "  " << name3 << "  " << name4 << "  " << title1 << "  " << title2 << endl;

inData >> class1 >> algebra1 >> algebra2 >> algebra3 >> algebra4 >> algebra_total >> algebra_avg;
algebra_total = algebra1 + algebra2 + algebra3 + algebra4;
algebra_avg = average_calc(algebra_total);
cout << class1 << "   " << algebra1 << "    " << algebra2 << "     " << algebra3 << "    " << algebra4 << "   " << algebra_total << "    " << algebra_avg << endl;

inData >> class2 >> cs1 >> cs2 >> cs3 >> cs4 >> cs_total >> cs_avg;
cs_total = cs1 + cs2 + cs3 + cs4;
cs_avg = average_calc(cs_total);
cout << class2 << "       " << cs1 << "    " << cs2 << "     " << cs3 << "    " << cs4 << "   " << cs_total << "    " << cs_avg << endl;

inData >> class3 >> english1 >> english2 >> english3 >> english4 >> english_total >> english_avg;
english_total = english1 + english2 + english3 + english4;
english_avg = average_calc(english_total);
cout << class3 << english1 << english2 << english3 << english4 << english_total << english_avg;

inData >> class4 >> science1 >> science2 >> science3 >> science4 >> science_total >> science_avg;
science_total = science1 + science2 + science3 + science4;
science_avg = average_calc(science_total);
cout << class4 << science1 << science2 << science3 << science4 << science_total << science_avg;

inData >> title3;
cout << title3 << angela_avg << langston_avg << maya_avg << malcolm_avg << endl;

inData.close();
return 0;

}

void report_heading()
{
cout << "********************SMALL COLLEGE GRADE REPORT*******************"   << endl;
}

void student_heading()
{
cout << "*******************" << endl;
cout << "Student" << endl;
cout << "ID" << endl;
cout << "SYCS-135 Computer Science I" << endl;
cout << "Assignment 5" << endl;
cout << "September 24, 2015" << endl;
cout << "******************" << endl;
}

float average_calc(float total_value)
{
float average;
average = total_value / 4;
return average;

-1

Решение

Эта линия

inData >> class1 >> algebra1 >> algebra2 >> algebra3 >> algebra4 >> algebra_total >> algebra_avg;

пытается прочитать строку «CS1» в algebra_total, что приводит к сбою потока. Либо не пытайтесь прочитать эти цифры, либо исправьте текстовый файл в что-то вроде

        Angela Langston Maya Malcolm Total Average
Algebra  64.5   56.7    67.4  90.0   0    0
CS1      88.6   77.0    55.3  89.4   0    0
English  91.3   67.4    89.0  100.0  0    0
Science  100.0  89.4    80.2  91.4   0    0
Average
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]