Я создаю большую библиотеку файлового ввода-вывода и в настоящее время борюсь с совместимостью getline () и записью в файл. Мой вопрос ниже очень похож на этот, но, к сожалению, остается без ответа: C ++ После того, как я использую getline для чтения из файла, я больше не могу писать в текстовый файл
Как только я использую getline (), я больше не могу писать в файл. Запросы на чтение с помощью getline () будут продолжать работать, но запросы на запись не будут выполнены. Однако, если я закомментирую использование getline (), операции записи будут успешными.
Мой код размещен ниже. Я заметил, что сбой бит активируется после первой попытки записи. Однако причина этого возникновения мне неизвестна, так как она не активна, если я удаляю операции getline ().
Мне должно быть ясно - я могу читать из существующего файла (который содержит две строки) отлично. Однако я не могу записать в этот файл, если не удалю операторы getline ().
Любая помощь, как всегда, ценится.
// Includes
#include <fstream>
#include <iostream>
#include <string>
// Namespace
using namespace std;
int main(){
// filestream object
fstream workFile("testdoc.txt"); //fstream uses ios::in | ios::out by default
// note that I have tried including ios::in | ios::out to no avail
// read from file
string grabbedLine;
getline(workFile, grabbedLine);
cout << "Line #1: " << grabbedLine << endl;
// write to file
workFile<< "Here is some output (#1)" << endl;
// read from file
getline(workFile, grabbedLine);
cout << "Line #2: " << grabbedLine << endl;
// write to file
workFile<< "Here is some output (#2)" << endl;
// wait for some input...
getchar();
}
Current console output (as expected from text file):
Line #1: This is line#1
Line #2: This is line#2