ファイルから 3 つの値を読み取り、平均を計算し、それをファイルに出力するための複雑なプログラムを作成する必要があります。これらはすべて異なる関数を使用しており、ファイルから入力を取得する関数は、個別に 3 回呼び出す必要があります。ファンシーなもの。毎回変数を 1 ずつインクリメントしています。入力が取得され、それに応じて行がスキップされます。改行文字までignore()を使用すると最初の2つの入力がうまくいくようですが、最初の2つの入力をスキップして3番目を取得するために2回使用すると、2番目の入力を再度取得し、それを使用して平均。たとえば、5,7 と 10 の平均は 6.3~ でしたが、7.3~ である必要があります。改行文字まで無視を 2 回使用して何か間違ったことをしていますか? メインのコードと関連する 2 つの関数を含めました。
int main() {
double input_1, input_2, input_3;
double average;
int count = 1;
ifstream infile;
ofstream outfile;
infile.open("infile.txt");
outfile.open("outfile.txt");
input_1 = get_input(infile, count);
count = count+1;
input_2 = get_input(infile, count);
count=count+1;
input_3 = get_input(infile, count);
average = calculate_avg(input_1, input_2, input_3);
output_to_file(average, outfile);
infile.close();
outfile.close();
return 0;
}
double get_input(ifstream& infile, int number) {
double input_value;
if (number == 1) {
infile >> input_value;
}
else if (number == 2)
{
infile.ignore (100, '\n');
infile >> input_value;
}
else if (number == 3)
{
infile.ignore (100, '\n');
infile.ignore (100, '\n');
infile >> input_value;
}
return input_value;
}
double calculate_avg(double val_1, double val_2, double val_3){
double avg;
avg = (val_1 + val_2 + val_3)/3;
return avg;
}