使用 fstream 写入文件后从文件中读取 - 始终为空

Read from a file after have written to it with fstream - always empty

std::fstream file("filename", std::fstream::in | std::fstream::out | std::fstream::trunc);
    if (file)
    {
        file << "Some text" << std::flush;
        std::string buffer;
        //file >> buffer;
        std::getline(file, buffer);
        std::cout << buffer;
    }

我需要写入文件并从中读取。在 运行 之后,我可以看到带有创建文本的文件,但是使用带有两个选项的代码如何读取 buffer 它总是空的。我做错了什么?

使用seekg(0)设置开始位置。当您在文件上书写时,它会将位置移动到末尾,而要阅读它,您必须移动到开始位置。

std::fstream file("filename", std::fstream::in | std::fstream::out | std::fstream::trunc);
if (file)
{
    file << "Some text" << std::flush;
    std::string buffer;
    //file >> buffer;
    file.seekg(0);
    std::getline(file, buffer);
    std::cout << buffer;
}