【发布时间】:2016-01-19 18:30:08
【问题描述】:
我有一个包含数字的 .txt 文件,如下所示:
1
2
3
等
数字并不重要,但它们都从新行开始。
然后我想在文本文件中找到数字的总和和平均值。
这是我目前所拥有的:
#include<cmath>
#include<cstdlib>
#include<iomanip>
#include<string>
#include<fstream>
using namespace std;
int main(int argc, char * argv[])
{
std::fstream myfile("numbers.txt", std::ios_base::in);
float a;
while (myfile >> a)
{
printf("%f ", a);
}
getchar();
return 0;
int sum(0);
int sumcount(0);
double average(0);
int even(0);
int odd(0);
ifstream fin;
string file_name;
int x(0);
cout<<"numbers.txt";
cin>> file_name;
fin.open(file_name.c_str(),ios::in);
if (!fin.is_open())
{
cerr<<"Unable to open file "<<file_name<<endl;
exit(10);
}
fin>>x;
while (!fin.fail())
{
cout<<"Read integer: "<<x<<endl;
fin>>x;
sum=sum+x;
sumcount++;
if(x%2==0)
even++;
else
odd++;
}
fin.close();
average=(double)sum/sumcount;
cout<<"Sum of integers: "<<sum<<endl;
cout<<"Average: "<<average<<endl;
cout<<"Number of even integers: "<<even<<endl;
cout<<"Number of odd integers: "<<odd<<endl;
return 0;
}
开始加载数字,但不会执行下一步。
我查看了很多其他代码并尝试实现其他想法来解决问题;但是,有些人使用循环和数组以及其他东西,我不确定该使用哪个。
如何让我的程序找到文件中数字的总和和平均值?
还有任何其他的帮助链接将不胜感激
编辑:虽然数字是整数,但平均值可能不是
【问题讨论】:
-
while (!fin.fail())=>while (fin >> x)对于初学者。 -
提示#1:在
main()几乎开头的无条件return 0;通常是个坏主意,您的程序将不会在该行之后继续。