C++ 读取一个.txt文件,计算总和和平均值

C++ 读取一个.txt文件,计算总和和平均值,c++,sum,average,mean,C++,Sum,Average,Mean,我有一个.txt文件,其中包含数字,如下所示: 1 2 三, 等 这些数字并不重要,但都是从一条新的线路开始的 然后我想找到文本文件中数字的总和和平均值 以下是我目前掌握的情况: #include<cmath> #include<cstdlib> #include<iomanip> #include<string> #include<fstream> using namespace std; int main(int argc, ch

我有一个.txt文件,其中包含数字,如下所示:

1
2
三,

这些数字并不重要,但都是从一条新的线路开始的

然后我想找到文本文件中数字的总和和平均值

以下是我目前掌握的情况:

#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;
}
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
int main(int argc,char*argv[])
{
std::fstream myfile(“numbers.txt”,std::ios_base::in);
浮动a;
while(myfile>>a)
{
printf(“%f”,a);
}
getchar();
返回0;
整数和(0);
int sumcount(0);
双平均(0);
整数偶数(0);
int奇数(0);
流鳍;
字符串文件名;
int x(0);
文件名;
打开(文件名.c_str(),ios::in);
如果(!fin.is_open())
{
cerr
#包括
#包括
使用名称空间std;
int main(){
int n=0;
整数和=0,总数=0;
fstream文件(“numbers.txt”);
while(file>>n)//或while(cin>>n)从标准输入、命令行读取
{
总和+=n;
总计++;
}
整数平均=(浮动)总和/总数;

cout一旦主函数遇到return 0语句,它将退出程序并无法执行剩余的代码。这通常只会在主函数中出现一次,在代码块的末尾

这是您的工作代码

#include <cmath>
#include <cstdlib>
#include <iostream>
#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 = 0;

    myfile >> a;

    while (!myfile.fail())
    {
        printf("%f ", a);
        myfile >> a; // here you dispay your numbers
    }

    getchar(); // waiting for input

    float sum(0);
    int x(0);
    int sumcount(0);
    double average(0);
    int even(0);
    int odd(0);

    ifstream fin;

    string file_name;

    cout<<"numbers.txt" << endl;

    cin>> file_name; // waiting for enter 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; // display number again

        sum=sum+x;
        sumcount++;
        if(x % 2==0)  // compuing your file statistics
            even++;
        else
            odd++;

        fin>>x;
    }

    fin.close();
    average=(double)sum/sumcount;

    cout<<"Sum of integers: "<<sum<<endl; // displaying results
    cout<<"Average: "<<average<<endl;
    cout<<"Number of even integers: "<<even<<endl;
    cout<<"Number of odd integers: "<<odd<<endl;

    return 0;
}
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
int main(int argc,char*argv[])
{
std::fstream myfile(“numbers.txt”,std::ios_base::in);
浮点数a=0;
myfile>>a;
而(!myfile.fail())
{
printf(“%f”,a);
myfile>>a;//在这里您可以显示您的号码
}
getchar();//正在等待输入
浮点数(0);
int x(0);
int sumcount(0);
双平均(0);
整数偶数(0);
int奇数(0);
流鳍;
字符串文件名;
不能包含
#包括
int main()
{
std::ifstream txtFile;
打开(“data.txt”);
//TODO:检查文件是否无法打开。
双时差、平均值(0.0)、总和(0.0)、计数(0.0);
while(txtFile>>tempNum)
{
sum+=tempNum;
++计数;
}
平均值=总和/计数;

std::cout
while(!fin.fail())
=>
while(fin>>x)
对于初学者。提示1:无条件
返回0;
main()的几乎开始处
通常是个坏主意,你的程序在那一行之后将不会继续。谢谢-我使用xcode,我的输出只是给我文件中的数字,而不是总和或平均值-你知道为什么吗?在程序显示数字后尝试按enter键它只返回文件编号的名称。txt然后输入“number.txt”你们必须知道你们的代码在做什么,很明显你们不理解你们的程序在做什么。我并没有看到所有的答案。
#include <cmath>
#include <cstdlib>
#include <iostream>
#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 = 0;

    myfile >> a;

    while (!myfile.fail())
    {
        printf("%f ", a);
        myfile >> a; // here you dispay your numbers
    }

    getchar(); // waiting for input

    float sum(0);
    int x(0);
    int sumcount(0);
    double average(0);
    int even(0);
    int odd(0);

    ifstream fin;

    string file_name;

    cout<<"numbers.txt" << endl;

    cin>> file_name; // waiting for enter 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; // display number again

        sum=sum+x;
        sumcount++;
        if(x % 2==0)  // compuing your file statistics
            even++;
        else
            odd++;

        fin>>x;
    }

    fin.close();
    average=(double)sum/sumcount;

    cout<<"Sum of integers: "<<sum<<endl; // displaying results
    cout<<"Average: "<<average<<endl;
    cout<<"Number of even integers: "<<even<<endl;
    cout<<"Number of odd integers: "<<odd<<endl;

    return 0;
}
#include <iostream>
#include<fstream>

int main()
{
    std::ifstream txtFile;
    txtFile.open("data.txt");
    //TODO: check if the file fails to open.

    double tempNum, mean(0.0), sum(0.0), count(0.0);
    while (txtFile >> tempNum)
    {
        sum += tempNum;
        ++count;
    }
    mean = sum/count;
    std::cout << "mean: " << mean << "  sum: " << sum << std::endl;

    return 0;
}