Подсчет средних чисел из файла в C ++ - PullRequest
0 голосов
/ 29 апреля 2020

Мне нужно вычислить среднее число чисел, сохраненных в файле, но я получаю ошибку оператора "+". В чем проблема?

int main()
{
    int a;
    fstream File;
    string Line;
    File.open("file.txt", ios::in);
    if (File.is_open()){
    while(!File.eof()) //.eof -> End Of File
    {
        File>>Line;
        a=a+Line;
        cout<<Line<<"\n";
        cout << a;
    }
    }
    else{
        cout << "File open error";
    }
    File.close();
    return 0;
}

1 Ответ

2 голосов
/ 29 апреля 2020

Вы не можете добавить строку в int. Для начала прочитайте int, а не строку.

Вы также вообще не вычисляете среднее значение, как требует ваш вопрос. Вы только рассчитываете сумму.

Попробуйте вместо этого:

int main() {
    ifstream File("file.txt");
    if (File.is_open()) {
        int num, count = 0, sum = 0;
        while (File >> num) {
            ++count;
            sum += num;
        }
        if (File.eof()) {
            cout << "count: " << count << endl;
            cout << "sum: " << sum << endl;
            if (count != 0) {
                int average = sum / count;
                cout << "average: " << average << endl;
            }
        }
        else {
            cerr << "File read error" << endl;
        }
    }
    else {
        cerr << "File open error" << endl;
    }
    return 0;
}

Live Demo

...