c++ - 使用输入和输出选项读取文件流后无法写入

标签 c++ file-io iostream

我的文件流有问题。我需要的是打开文件,读取它,然后在上面写一些值。这就是我现在拥有的

        std::string filename;
    std::fstream save_file;
    save_file.open(SAVED_HASH, std::fstream::in | std::fstream::out | std::fstream::binary);
    while (save_file >> filename);
    save_file.seekg(save_file.beg);
    save_file << " more lorem ipsum";
    save_file.close();

当我尝试运行它时,我得到的只是一个空文件。但是如果我删除第 4 行它会起作用。这段代码有什么问题,为什么我不能读取文件,然后写入

最佳答案

我能发现的一个错误是在

之后
while (save_file >> filename); 

您需要清除错误标志。

save_file.clear();

另外,IMO 你需要使用 seekp 而不是 seekg 因为你想在这个位置“写”。

查看此链接以获取示例 http://www.cplusplus.com/reference/ostream/ostream/seekp/?kw=seekp

关于c++ - 使用输入和输出选项读取文件流后无法写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20314214/

相关文章:

c++ - 从新分配的内存分配给对象

c++ - cv::detail::MultiBandBlender 照片末尾出现奇怪的白色条纹

c++ - c++中list、vector等容器中如何快速交换对象

C++ - 读取输入文件并存储和计算统计数据

winapi - Windows下以无竞争的方式删除目录?

c - C 中的简单字数统计

windows - 为什么大块中的文件 I/O 比小块中的文件 I/O 慢?

c++ - 评估序列和 << 运算符

c++ - 使用istream遇到错误将double输入int变量

c++ - 辛是如何工作的?