循环中的文件输入
File inputs in loops
我被要求从.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 函数上,在循环中使用它不稳定。谢谢大家。
相关文章:
- 用c++从输入文件中读取另一行
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 获取通过重定向传入的输入文件的名称?
- C++ 如何打开带有另一个目录的输入文件?
- C++模板编程设计问题 - 根据输入文件返回不同的类型
- 如何从输入文件 c++ 创建随机名称生成器
- 从输入文件修剪空格
- 链接器输入文件未使用,因为链接未完成,我无法获得.o
- 我正在尝试从输入文件中读取,然后使用它们的子字符串比较字符串的特定部分
- 我遇到使用 c++ 逐行读取输入文件的问题
- 使用重定向命令从 stdin 读入的字符串"<"输入文件未正确附加
- 使用 getline 从输入文件打印时如何忽略空白行
- 如何按升序对输入文件中的数字进行排序,并找到它们的范围和中值
- 数组大小由输入文件中的行数定义
- 从C++输入文件读取
- 在课堂上创建了一个朋友,给出"无输入文件"错误
- 通过显示一行星号来创建条形图,该条形图将读取数据的输入文件
- 利用输入文件中的数据(字符串和int)并在循环中利用
- C++ 仅读取输入文件中的部分(不是全部)数据以添加到记录中
- 如何从输入文件中读取字符并将其存储到向量中?