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