【发布时间】:2016-08-14 11:24:29
【问题描述】:
这是我的 scores.txt 文件
7 2 11 4
9 1 30 3
5 3 20 3
10 1 10 2
5 0 50 0
这是5局板球比赛的细节
以上细节的结构:
在文本文件中,第一列代表 7-overs、2-maiden、11-runs、4-wickets。
我想在文本文件中获取五个保龄球(计算列)和该保龄球的平均值(第三列值除以第四列)并在终端中打印/显示。
如下:
Bowler Average
1 2.75
2 10
3 6.66
4 5
5 NA
6 NA
以上文件有六个投球手,但最后一个是重复的。我尝试将其修复为仅五次,因为 score.txt 文件有五行。
这是我的代码
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
using std::setw;
int main(){
float avg;
int over,maiden,runs,wickets;
ifstream scores;
scores.open("scores.txt");
if(!scores){
cout<<"Error \n";
return -1;
}
ofstream average("average.txt");
if(!average){
cout<<"Error \n";
return -1;
}
average << "Bowler"<<"\t"<<"Average"<<endl;
int i=1;
//scores >> over >> maiden >> runs >> wickets;
while(!scores.eof()){
scores >> over >> maiden >> runs >> wickets;
avg = runs/float(wickets);
if(wickets == 0){
average<<i<<"\t"<<"NA"<<endl;
}else{
//avg = runs/float(wickets);
average << i<<"\t"<<avg<<endl;
}
i++;
}
scores.close();
average.close();
return 0;
}
【问题讨论】:
-
我的问题是计算平均值并将文本文件作为 2 列写入。
标签: c++ if-statement while-loop io fstream