C++ C++;使用不同的流读取和写入同一文件

C++ C++;使用不同的流读取和写入同一文件,c++,io,C++,Io,我有两条流指向同一个文件。第一个是std::ofstream os,第二个是std::ifstream is,两者都是以二进制模式打开的 我正在使用os创建一个新文件。文件创建过程要求我(有时)读取os写入文件的数据。is流寻找所需的位置,读取一些数据,然后os以其(不同的)偏移量执行操作,然后刷新 这样做合法吗?流是否会互相践踏?不能引用任何标准,但/因为这是特定于平台的 (可能是独占访问、不同级别的缓冲…) 您可以将一个fstream与ios::in | ios::out 每次执行操作之前都

我有两条流指向同一个文件。第一个是
std::ofstream os
,第二个是
std::ifstream is
,两者都是以二进制模式打开的

我正在使用
os
创建一个新文件。文件创建过程要求我(有时)读取
os
写入文件的数据。
is
流寻找所需的位置,读取一些数据,然后
os
以其(不同的)偏移量执行操作,然后刷新


这样做合法吗?流是否会互相践踏?

不能引用任何标准,但/因为这是特定于平台的
(可能是独占访问、不同级别的缓冲…)

您可以将一个
fstream
ios::in | ios::out


每次执行操作之前都要先查找。

我尽量避免这种情况,因为在执行读或写操作时,它会使事情变得复杂(我需要维护偏移量堆栈)。我想我会看看双流版本是否能在我的平台目标上运行。不是每次写入后都刷新,而是自动执行
is.tie(&os)