c++把double,int等数据类型直接写入文本文件,不要先变成字符串再写入,如何写?

比如0是int类型有4个字节就写4个字节,不要变成字符0再写入。还有必须能跨平台可运行于linux的。
我的代码这么写
int i1=2;
ofstream output("./1.txt", ios::binary);
output<<i1;

结果1.txt文件中保存字符2,我不是指定二进制方式ios::binary进行输出了吗?为什么还存放字符2呢??这样不行该怎么写呢?

望高手赐教啊,在线等着!

知道答案了,应该这么写:

int i1=2;
ofstream output("./1.txt", ios::binary);
output.write((char*)(&i1),sizeof(i1)); //写入

int i2=0;
ifstream input("./1.txt",ios::binary);
input.read((char*)(&i2),sizeof(i2)); //读取

这可以满足需求,还有其他方法吗?

另外,如果你直接写入文本文件这些数字,那么表现出来就是乱码。因为大部分的二进制数字都是不可打印的。

你所想的是不可能实现的,因为c++=标准库只提供了二进制流和字符串这两种接口...考虑到效率与其他因素..

http://blog.csdn.net/xiejianjun417/article/details/18075511

filestream << i;
这就是二进制的