将问题移至此处。假设我想存储10亿个整数,但无法使用我的内存。我会使用一个文件(可以轻松处理这么多数据)。
如何同时进行读写操作?
使用 fstream file("file.txt', ios::out | ios::in );
并不会首先创建文件。但是假设文件已经存在,我仍然无法同时进行读写操作。
我的意思是:
让文件的内容为 111111
然后如果我运行:-
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
fstream file("file.txt",ios:in|ios::out);
char x;
while( file>>x)
{
file<<'0';
}
return 0;
}
文件的内容现在不应该是
101010
吗?读取一个字符,然后用0覆盖下一个字符?或者如果整个内容一次性读入某个缓冲区,文件中不应至少有一个0吗?1111110
?
但是,文件的内容保持不变。请解释一下。
谢谢。
file << '0';
之前和之后放置file.tellg(); file.tellp();
时,我确实得到了101010
(通过调试输出意外发现)。这表明程序中存在一些未定义的行为?fstream 实现中的错误? - UncleBens