问题描述
- 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)); //读取
这可以满足需求,还有其他方法吗?
解决方案二:
filestream << i;
这就是二进制的
解决方案三:
另外,如果你直接写入文本文件这些数字,那么表现出来就是乱码。因为大部分的二进制数字都是不可打印的。
解决方案四:
你所想的是不可能实现的,因为c++=标准库只提供了二进制流和字符串这两种接口...考虑到效率与其他因素..
解决方案五:
http://blog.csdn.net/xiejianjun417/article/details/18075511
时间: 2024-10-29 12:43:26