o.write
不寫字符,它寫字節(如果標記爲ios :: binary)。使用char指針是因爲char的長度爲1 Byte。
o.write((char*)a,sizeof(a));
(char*) a
是什麼o.write
應該寫ADRESS。然後它將sizeof(a)
字節寫入文件。沒有字符存儲,只是字節。
如果你在一個十六進制編輯器打開該文件,你會看到這樣的事情,如果是int i = 10
: 0A 00 00 00
(4字節,在64位)。
閱讀是模擬的。
這裏是一個工作示例:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main (int argc, char* argv[]){
const char* FILENAM = "a.txt";
int toStore = 10;
ofstream o(FILENAM,ios::binary);
o.write((char*)&toStore,sizeof(toStore));
o.close();
int toRestore=0;
ifstream i(FILENAM,ios::binary);
i.read((char*)&toRestore,sizeof(toRestore));
cout << toRestore << endl;
return 0;
}
你能更具體嗎? – 2013-02-22 06:18:33
我想了解如何讀取存儲在二進制文件中的整數值[4個字節]。 – user2097891 2013-02-22 06:20:33
你的代碼是不是已經這樣做了? – 2013-02-22 06:22:39