Chris.5128 2022-12-16 15:46 采纳率: 75%
浏览 70
已结题

c++练习题 在二进制文件data.dat中写入三个记录

第三四题怎么在电脑上运行不了 一直报错 实在是想不出来了 谁会吖 显示在电脑上找不出文件无法打开

注意用c++不是C语言

img

img

  • 写回答

3条回答 默认 最新

  • yy64ll826 2022-12-16 16:46
    关注

    C++中ofstream实现二进制文件dat的写入
    望采纳

    1、添加头文件
    #include <ofstream> //文件输出流
    #include <iomanip> //io流控制
    
    2、创建dat文件并输出字符串和数据
    //创建文件
    ofstream f("test.dat", ios::binary);//binary为二进制
        if (!f)
        {
            cout << "创建文件test.dat失败" << endl;
        }
    //输出字符串"hello"到test.dat文件
    string str1 = "hello";
    f << str1 << endl;
    //输出数据123.45到test.dat文件
    double num = 123.456789;
    f << num <<endl;//使用这种方式可以直接将double数据输出,不需要转string
    
    3、格式化输出数据
    //将num以靠左对齐,五位有效数字,小数点后两位输出
    f << fixed << left << setw(5) << setprecision(2) << num << endl; //没错,不仅cout可以这么用
    1
    2
    4、解决二次输出会将上次输出覆盖的问题
    问题:
    当第二次使用ofstream输出时,会把上一次输出的文件覆盖掉(实际上它重新创建了该文件)。
    解决方法:
    在第二次输出时将ios::binary 改成ios::app
    
    ofstream f2("test.dat", ios::app);//这样可以避免test.dat中之前的文本被覆盖掉
        if (!f2)
        {
            cout << "创建文件test.dat失败" << endl;
        }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月29日
  • 已采纳回答 12月21日
  • 修改了问题 12月16日
  • 赞助了问题酬金15元 12月16日
  • 展开全部

悬赏问题

  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab