C++ 代码
基本上我正在尝试从文件中获取输入并将数据存储在变量中,但我无法做到这一点,因为每次我编译此代码时它都会成功编译但会出现运行时错误。(现在我只有 3 个学生的数据,所以我将条件设置为运行循环 3 次)。
变量“Name”将从文件中获取名称,“sap”将获取卷号,“number”将获取用户想要输入分数的科目数(最多 5 个),“marks”将输入分数那些科目。
变量“SapFile”、“NumberFile”和“MarksFile”将从文件中获取字符串数据,并将它们存储在它们各自的格式变量中,如上所述。
它的确切作用是从文件中读取数据到变量并打印它们,但是当它到达“i = 3”时,这个条件不是变为假并终止循环并退出函数,而是给出运行时错误。[注意:它正确打印了文件中3个学生的数据,然后给出了运行时错误]。
错误快照附加如下,
'''
这是我的代码
void read_in_variables(void)
{
string SapFile = "";
string NumberFile = "";
string MarksFile = "";
int studentCount = 0;
struct Student
{
string Name = "";
int sap = 0;
int number = 0;
int marks[5] = { 0 };
};
Student S[50];
ifstream outFile;
outFile.open("Students.csv", ios::in);
if (outFile.is_open())
{
for (int i = 0; i<3; i++)
{
if (i == 0)
cin.ignore();
getline(outFile, S[i].Name, ',');
studentCount++;
getline(outFile, SapFile, ',');
S[i].sap = stoi(SapFile);
getline(outFile, NumberFile, ',');
S[i].number = stoi(NumberFile);
cout << i + 1 << ". " << S[i].Name << ", " << S[i].sap << ", " << S[i].number;
for (int j = 0; j < (S[i].number - 1); j++)
{
getline(outFile, MarksFile, ',');
S[i].marks[j] = stoi(MarksFile);
cout << ", " << S[i].marks[j];
}
getline(outFile, MarksFile, '\n');
S[i].marks[S[i].number] = stoi(MarksFile);
cout << ", " << S[i].marks[S[i].number];
cout << endl;
}
outFile.close();
if (studentCount == 0)
cout << "\n\nNo Student Records Present.\n\a\n";
}
else
{
cout << "File not Opened !!! ";
}
}
此外,当我一开始尝试在条件语句中放入“outFile.eof()”时,它在开始时返回 false,甚至不进入循环,并打印“没有学生记录存在”。因为“StudentCount”的值为 0。
[我已包含此功能所需的所有头文件]。
请帮我解决这个问题并让这个功能完美运行。