このラボの出力で面白いエラーが発生しました。私の問題がどこにあるのか、誰かがヒントをくれるのではないかと思っていました。
目標は、記録の最高、最低、平均、合計を見つけ、元の記録を出力することです。1 つのレコードを解決するためのかなり基本的なプログラムから始めました。これを達成したとき、プログラムを拡張して、テキスト ファイル全体を処理できるようにしました。最初、プログラムは正しく出力します:
346 130 982 90 656 117 595 高# 低# 合計# 平均#
レコード全体で機能するように拡張すると、出力が意図したとおりに機能しなくなりました。
0 0 0 0 0 0 0 High: 0 Low: 0 Sum: 0 Average: 0 0 0 0 0 0 0 0 High: 0 Low: 0 Sum: 0 Average: 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);
}