Задание - "Заполнить файл случайными числами (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();
}