我在这个实验室的输出中遇到了一个相当有趣的错误,我想知道你们中是否有人能够暗示我的问题出在哪里。
目标是找到记录的最高、最低、平均、总和,并输出原始记录。我从一个相当基本的程序开始解决一条记录,当我实现这一点时,我扩展了程序以处理整个文本文件。最初程序会正确输出:
346 130 982 90 656 117 595 高# 低# 总和# 平均#
当我将它扩展为适用于整个记录时,我的输出停止了我想要的工作。
0 0 0 0 0 0 0 高:0 低:0 总和:0 平均:0 0 0 0 0 0 0 0 高:0 低:0 总和:0 平均:0 等等...
我无法弄清楚为什么我的 ifstream 完全停止了从文件中输入值的麻烦。
我会去散步,再试一次。如果这不起作用,我会回到这里检查任何回复=)
谢谢!
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
int main()
{
int num;
int high = 0;
int low = 1000;
double average = 0;
double sum = 0;
int numcount = 0;
int lines = 1;
char endoline;
ifstream inData;
ofstream outData;
inData.open("c:\\Users\\Nikko\\Desktop\\record5ain.txt");
outData.open("c:\\Users\\Nikko\\Desktop\\record5aout.txt");
if(!inData) //Reminds me to change path names when working on different computers.
{
cout << "Could not open file, program will exit" << endl;
exit(1);
}
while(inData.get(endoline))
{
if(endoline == '\n')
lines++;
}
for(int A = 0; A < lines; A++)
{
for(int B = 0; B < 7; B++)
{
while(inData >> num)
inData >> num;
numcount++;
sum += num;
if(num < low)
low = num;
if(num > high)
high = num;
average = sum / numcount;
outData << num << '\t';
}
outData << "High: " << high << " " << "Low: " << low << " " << "Sum: " << sum << " " << "Average: " << average << endl;
}
inData.close();
outData.close();
return(0);
}