Это мой код (без проверки ошибок):C++ fstream перезаписать файл
std::wfstream wfs("C:\\testfile.txt");
wfs.setf(std::ios_base::binary);
std::wstringstream wss;
wss << wfs.rdbuf();
wfs.seekp(0);
wfs << L"new";
Теперь, первые три символа в файле заменяется на «новый». Однако я хотел бы, чтобы «новое» было единственным содержимым файла.
Как это достичь?
'setf' принимает флаги формата в качестве аргумента, а не открытые флаги режима. Вы хотите 'std :: wfstream wfs (« C: \\ testfile.txt », std :: ios_base :: binary)'. – 0x499602D2
О, тогда мне также нужно скопировать аргументы по умолчанию, такие как 'std :: ios :: in | std :: ios :: out | std :: ios :: binary' правильно? –
Нет, они автоматически указываются в 'fstream'. – 0x499602D2