Проблема:
, но все, что я получаю, это какое-то случайное число, например "342142464" в текстовом файле.
ofs << arr[i] << std::endl;
Это единственное, что вы пишете в свой файл, который также является UB (неопределенное поведение), поскольку здесь значение i
равно n
(после выхода из предыдущего l oop).
arr[n]
выходит за пределы и может быть любым значением мусора, или ваша программа может даже завершиться.
Решение:
Так же, как вы распечатайте отсортированный массив на консоль, используя cout
, сделайте то же самое с ofs
:
for (i = 0; i < n; ++i)
ofs << arr[i] << '\t';
ofs << endl;
Или вы можете сделать это в самом предыдущем l oop:
for (i = 0; i < n; ++i)
{
cout << arr[i] << '\t';
ofs << arr[i] << '\t';
}
cout << endl;
ofs << endl;