Я открыл файл в режиме чтения и записи
, используя следующую инструкцию
file.open(fileName, ios::in | ios::out | ios::trunc);
Моя основная цель открыть файл в обоих режимах - прочитать и записать файл вв то же время.
Но в моем сценарии кода,
, когда я читаю файл после его записи, вывод, показывающий пустое значение, означает, что он не сохраняет мое содержимое записи, потому что я не закрываюit.
И я хочу закрыть файл после завершения записи и чтения операции
Я нашел решение в переполнении стека,
для использования flush () функция для сохранения файла без закрытия
file.flush();
но проблема в том, что он не работает для моего случая
Итак, как я могу сохранить файл c ++ fstream без закрытия?
Вот мой полный код для лучшего понимания
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main(int argc, char const *argv[])
{
string fileName = "text.txt";
fstream file;
file.open(fileName, ios::in | ios::out | ios::trunc);
if (file.is_open())
{
file << "I am a Programmer" << endl;
file << "I love to play" << endl;
file << "I love to work game and software development" << endl;
file << "My id is: " << 1510176113 << endl;
file.flush(); // not working
}
else
{
cout << "can not open the file: " << fileName << endl;
}
if (file.is_open())
{
string line;
while(file)
{
getline(file, line);
cout << line << endl;
}
}
else
{
cout << "can not read file: " << fileName << endl;
}
file.close();
return 0;
}