同时读取和写入文件?
问题描述:
在此处移动问题。假设,我想存储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
? 但内容保持不变。请解释。 谢谢。
答
的文件流维持两个指针,读一个,另一个用于写入。如果您正在进行读取/写入操作,则需要使用seeg
和seekp
成员函数明确设置这些指针。您还会发现执行格式化的I/O可能会干扰您尝试执行的操作,因此您应该使用成员函数get
/put
和read
/write
。
另请参阅Why can't I read and append with std::fstream on Mac OS X?了解有关使用fstream的开放模式的更多信息。
有趣的问题。当我把'file.tellg(); file.tellp();'file UncleBens 2010-05-09 09:27:36