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)
。