Почему объект fstream выводит мусор

#include <iostream>
#include <fstream>
#include <string>
#include <Windows.h>
using namespace std;

int main()
{
    string buff = "";
    setlocale(LC_ALL, "rus");
    SetConsoleCP(866);
    string path = "text.txt";
    fstream file(path, ios_base::in | ios_base::app);
    if (file.is_open())
    {
        
        file.seekg(0, fstream::beg);

        cout << "File opened!\n";
        file << "\n";
        
        while (!file.eof())
        {
            buff = " ";
            file >> buff;
            cout << buff << '\n';

        }
    }
    else
    {
        cout << "File is not opend!";
    }
    file.close();
    return 0;
}

На выход в консоли получаю File opened! И множество HНН...
Происходит все это из-за того что я пытаюсь создать новую строку в файле, чтобы в последствии дописать туда мой новый текст.
Почему file << "\n"; вызывает такую бурную реакцию программы и как мне реализовать дописывание в новую строку без этого мусора?


Ответы (1 шт):

Автор решения: user7860670

Тут на самом деле сломано почти все. Но проблема именно с мусором - в записи и чтении из одного и того же потока без сброса буфера file.flush(); между ними.

→ Ссылка