在此处移动问题。假设,我想存储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.tellg(); file.tellp();'file <<'0'之前和之后;',我确实得到了'101010'(用调试输出偶然发现)。这表明程序中存在一些未定义的行为? fstream实现中的错误? – UncleBens 2010-05-09 09:27:36