在此處移動問題。假設,我想存儲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