Почему объект 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(); между ними.