C ++从文件加载数字然后查找总和

时间:2015-10-21 14:24:02

标签: c++ arrays sum average mean

我昨晚发布了一些内容,但由于我还没有完全理解我试图使用的代码,所以我决定稍微改变一下我的方法。

我道歉,因为我知道这个话题已经完成,但是我想对我编写的代码有点帮助。

我正在从我的计算机上加载一个.txt文件,其中包含100个整数。它们都是新行。

到目前为止,这是我的代码:

#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>

using namespace std;

int main ()
{
    ifstream fout;
    ifstream fin;



    string line;
    ifstream myfile ("100intergers.txt");
    if (myfile.is_open())
    {
        while ( getline(myfile,line) )
        {
            cout << line << '\n';
        }

        // Closes my file
        myfile.close();


        // If my file is still open, then show closing error
    if (myfile.is_open())
        cerr << "Error closing file" << endl;
        exit(1);
    }


    int y = 0;
    int z = 0;
    int sum = 0;
    double avg = 0.0;

    avg = sum/(y+z);
    cout << endl << endl;
    cout << "sum = " << sum << endl;
    cout << "average = " << avg << endl;

    // checking for error
    if (!myfile.eof())
    {
        cerr << "Error reading file" << endl;
        exit(2);
    }

    // close file stream "myfile"
    myfile.close();

    return(0);

}

当我运行它时,我得到退出代码1(以及我的100个整数的列表)。

这意味着我的if条款不是正确的选择,什么是更好的选择?

如果我完全删除该位,则无法运行算术错误,我认为是0/0 * 0

另外我认为我为.txt文件编写的代码是用于单词,而不是数字,但是当我将字符串更改为int时,它确实存在错误并且告诉我我遇到的问题多于没有问题。

最后 - 在此之后我想制作一个数组来计算方差 - 任何提示?

干杯

杰克

1 个答案:

答案 0 :(得分:4)

您正在从输出的文件中读取行。

然后你用一些变量算术,所有变量的值都为零 这些变量与文件内容无关。

我将通过显示计算文件中数字的方法来帮助处理基本循环结构:

int main()
{
    int value = 0;
    int count = 0;
    ifstream myfile("100intergers.txt");
    while (myfile >> value)
    {
        count++;
    }
    cout << "There were " << count << " numbers." << endl;
}

总结,剩下的就是练习。