Почему моя программа записывает в файл при первом запуске, но не при последующих запусках той же программы? - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь написать код, который пишет в файл. Это делается для первого запуска, но для любых будущих запусков он не записывает пользовательский ввод в файл. Почему это не записывает в файл после создания записи в файл? У меня есть оператор 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;
...