循环中的文件输入

File inputs in loops

本文关键字:输入 文件 循环      更新时间:2023-10-16

我被要求从.txt文件中获取文本和数字到C++程序。我不知道的是我将对他们的成绩进行排序的学生数量,所以我使用了一个条件为 !fin.eof() 的 while 循环法典:

#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
ifstream fin;
fin.open("grades.txt");
cout << "Namettt" << "Midtermt" << "HMAvgt" << "Finalt" << "Averaget" << "Grade" << endl;
while(!fin.eof())
{
    string name;
    double mdtrm, final, hw, shw=0, ahw=0, avg;
    char grade;
    getline(fin, name);
    fin >> mdtrm;
    fin >> final;
    for(int i=0; i<5; i++)
    {
        fin >> hw;
        shw = shw+hw;
    }
    ahw = shw/5;
    avg = ((mdtrm*0.3)+(final*0.4)+(ahw*0.3));
    if(avg>=90 && avg<=100)
        grade = 'A';
    else if(avg>=80 && avg<90)
        grade = 'B';
    else if(avg>=70 && avg<80)
        grade = 'C';
    else
        grade = 'F';
    cout << name << "t" << mdtrm << "t" << ahw << "t" << final << "t" <<  avg << "t" << grade << endl;
}
fin.close();
system("pause");
return 0;
}

它无限循环。我确保.txt文件没问题我的代码有什么问题?

问题出在 getline 函数上,在循环中使用它不稳定。谢谢大家。