不太确定我哪里出错了。当我执行时它没有输出任何东西,所以我假设它卡在某处并且无休止地继续。作业如下 - “编写一个程序,读取一个由学生组成的测试分数在0-200范围内的文件。然后应该确定在以下每个范围内得分的学生人数:0-24,25- 49,50-74,75-99,100-124,125-149,150-174,175-200。输出输入数据。“
#include "stdafx.h"
#include "iostream"
#include "fstream"
using namespace std;
int main()
{
ofstream outFile;
ifstream inFile;
int num;
int category[8] = { 0,0,0,0,0,0,0,0 };
outFile.open("testscores.txt");
if (!outFile)
{
cout << "outFile open failed." << endl;
return 0;
}
outFile << "blah blah" << endl << endl;
inFile.open("scorestest.txt");
if (!inFile)
{
cout << "infile failed" << endl;
return 0;
}
inFile >> num;
while (!inFile.eof())
{
if (num < 25)
category[0]++;
else if (num < 50)
category[1]++;
else if (num < 75)
category[2]++;
else if (num < 100)
category[3]++;
else if (num < 125)
category[4]++;
else if (num < 150)
category[5]++;
else if (num < 175)
category[6]++;
else if (num < 200)
category[7]++;
}
for (int i = 0; i <= 7; i++)
{
cout << "Number of Grades between" << category[i] << endl;
outFile << "Number of Grades between" << category[i] << endl;
}
inFile.close();
outFile.close();
return 0;
}
一直在努力争取这一点。这可能是我的inFile吗?我已经重写了三次不同的代码,让这个程序没有运气
答案 0 :(得分:1)
你没有在文件中前进,你正在使用之前阅读的那个num
而不再阅读nums
,所以你根本没有到达文件的末尾。< / p>