@wasabichen

Как исправить ошибку «main: функция не может быть перегружена»?

Задание - "Заполнить файл случайными числами (n - количество чисел в файле, m - количество чисел в строке) и подсчитать, сколько раз каждое число встречается в тексте файла number_file1.txt. Все встречающиеся числа и их количество вывести в файл number_file2.txt и на консоль в формате «число – количество». В конец файла number_file2.txt добавить слова "Result = " и количество различных чисел в тексте."

Никак не могу исправить....

#include <iostream>
#include <fstream>
#include <map>
using namespace std;
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "rus");
    int n, m, count = 0;
    int lL = -100, uL = 100;
    srand(time(NULL));
    cout << "n = ";
    cin >> n;
    int SIZE;
    SIZE = n;
    int* arr = new int[SIZE];
    cout << "m = ";
    cin >> m;
    ofstream fout("number_file1.txt");
    for (int i = 0; i < n; i++)
    {
        int r = lL + rand() % (uL - lL + 1);
        arr[i] = r;
        if (count == m)
        {
            cout << "\n" << r << " ";
            fout << "\n" << r << " ";
            count = 0;
        }
        else
        {
            cout << r << " ";
            fout << r << " ";
        }
        count++;
    }
    fout.close();
}
void counter_reps(istream& _in, map<int, unsigned>& ms);
void output_reps(ostream& _out, const map<int, unsigned>& ms);

int main(void) {
    map<int, unsigned> ms;

    ifstream fin("number_file1.txt");
    counter_reps(fin, ms);
    fin.close();

    output_reps(cout, ms);

    ofstream fout("number_file2.txt");
    output_reps(fout, ms);
    fout.close();

    ms.clear();
    return 0;
}

void counter_reps(istream& _in, map<int, unsigned>& ms) {
    int n;
    while ((_in >> n) && !_in.fail())
        ++ms[n];
}

void output_reps(ostream& _out, const std::map<int, unsigned>& ms) {
    map<int, unsigned>::const_iterator i = ms.begin();
    while (i != ms.end()) {
        _out << i->first << '(' << i->second << ')' << endl;
        ++i;
    }
    _out << "Result = " << ms.size() << endl;
    _out.flush();
}
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Ну у вас main() дважды объявлена, так делать нельзя.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы