Я пытаюсь написать код, который пишет в файл. Это делается для первого запуска, но для любых будущих запусков он не записывает пользовательский ввод в файл. Почему это не записывает в файл после создания записи в файл? У меня есть оператор if-else для проверки файла, который уже существует. Если есть файл, он должен писать в него. В противном случае он создает файл для записи.
fstream advice("advice.txt", ios::in|ios::out);
advice.open("advice.txt");
if (!advice.fail())
{
cout << "Found advise file." << endl << "Old advice:" << endl;
while (getline(advice, line))
{
cout << line << endl;
}
advice.flush();
advice.close();
advice.open("advice.txt", ios::in|ios::out|ios::app);
}
else
{
cout << "Could not open the Advise file." << endl<<"Assumption: first run - creating a new file..."<<endl;
advice.flush();
advice.close();
advice.open("advice.txt", ios::in | ios::out | ios::trunc); //create new file
}
cout << "Enter your phrase for the next user." << endl;
getline(cin, line);
advice <<line << endl;
advice.flush();
advice.close();
return 0;