zhuwt2008 2015-12-10 09:03 采纳率: 33.3%
浏览 2803
已采纳

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呢??这样不行该怎么写呢?

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

  • 写回答

5条回答 默认 最新

  • zhuwt2008 2015-12-10 13:42
    关注

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

    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)); //读取

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝