#include <iostream>

#include <fstream>
#include <cstdlib>
const int SIZE = 60;
int main()
{
using namespace std;
char filename[SIZE] = "C:/Users/yulong/Desktop/";
char fileuser[30];
cout << "Enter the file name: ";
cin.getline(fileuser,30);
strcat_s(filename,fileuser);
cout << "filename: " << filename << endl;
ifstream infile;
infile.open(filename); //文件内容是1 2 3
if(!infile.is_open())
{
cout << "Could not open the file " << filename << endl;
cout << "Program terminating.\n";
exit(EXIT_FAILURE);
}
 
double value;
double sum = 0.0;
int count = 0;
/*以下使用good()的方法只能读到1和2,如果在设定文件内容时在3后面加一空格或者回车可以读到3*/
infile >> value;
while(infile.good())
{
count++;
sum += value;
infile >> value;
}
/*以下方法可以正常读取到3个数字而不需要刻意在3后面加一空格或者是一个回车*/
/* while(infile >> value)
{
count++;
sum += value;
}
*/
if(infile.eof())
cout << "End of file " << filename << endl;
else if(infile.fail())
cout << "Input terminated by data mismatch.\n";
else
cout << "Input terminated for unknown reason.\n";
if (count == 0)
cout << "No data processed.\n";
else
{
cout << "Items read: " << count << endl;
cout << "Sum: " << sum << endl;
cout << "Average: " << sum/count << endl;
}
infile.close();
return 0;
}