我正在阅读关于 I/O 的 cplusplus.com 教程。最后,它说 fstream 缓冲区与磁盘上的文件同步
显式地,使用操纵器:当在流上使用某些操纵器时,会发生显式同步。这些操纵器是:flush 和 endl。
和
明确地,使用成员函数sync():调用不带参数的流的成员函数sync() 会导致立即同步。如果流没有关联的缓冲区或发生故障,此函数返回一个等于 -1 的 int 值。否则(如果流缓冲区已成功同步),则返回 0。
除了一些其他隐式情况(例如破坏和 stream.close() )
调用 fstream::flush() 和 fstream::sync() 有什么区别?结束?
在我的代码中,我一直使用flush()。
关于 std::flush() 的文档:
刷新流缓冲区
将与流关联的缓冲区同步到其受控的输出序列。这实际上意味着缓冲区中的所有未写入字符都将尽快写入其受控输出序列(“刷新”)。
关于 std::streambuf::sync() 的文档:
将输入缓冲区与字符源同步
调用它以将流缓冲区与受控序列(如文件流中的文件)同步。公共成员函数 pubsync 调用这个受保护的成员函数来执行这个动作。
如果这是一个新手问题,请原谅我;我是菜鸟。