Я пытаюсь прочитать список целых чисел из файла и сохранить их в контейнере std::set
, после чего хочу вывести целые числа в консоль и затем сгенерировать выходной файл. Я пытался это сделать, но не смог добиться успеха. Если я использую .erase()
в моей программе, тогда я могу видеть вывод на консоли и пустой файл без текста. Если я не использую .erase()
, то у меня есть ошибка времени выполнения бесконечного цикла. `Не удается сгенерировать вывод std :: set в файл и консоль
#include <iostream>
#include <set>
#include <fstream>
#include <iterator>
using namespace std;
int main()
{
set<int> myset;
fstream textfile;
textfile.open("input.txt"); // opening the file
// reading input from file
while (!textfile.eof())
{
int iTmp = 0;
textfile >> iTmp;
myset.insert(iTmp);
}
// output to the console
set<int>::iterator iter = myset.begin();
while (!myset.empty())
{
cout << *myset.begin() << " ";
myset.erase(myset.begin());
}
// writting output to the file
ofstream out_data("Ahmad.txt");
while (!myset.empty())
{
out_data << *myset.begin() << " ";
}
system("pause");
}`
Unrelated к вашей проблеме, но вы можете прочитать [ "Почему iostream :: eof внутри условия цикла считается неправильным? "] (http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong). –