DX231 2016-07-11 15:03 采纳率: 9.1%
浏览 1036

大家帮我瞅瞅如何修改下面代码,使其可以追加数据保证原来的数据不被覆盖

n=0;//保存的数据个数
if(num!=0)//如果采集到数据
{
CFileDialog dlg(false,"txt",_T("shuju.txt"),NULL,"Text(*.txt)|*.txt|All Files(*.*)|*.*||",NULL);
//false为保存,"txt",_T("shuju.txt")为默认打开文件名,"Text(*.txt)|*.txt|All Files(*.*)|*.*||"打开文件的类型,NULL是父类窗口

dlg.m_ofn.lpstrTitle=_T("请选择保存路径:");//可供选择的文件类型
if(dlg.DoModal()==IDOK)//如果按下确定按钮
{
    strDirFile=dlg.GetPathName();//获取所选择的文件名
    CFile file(strDirFile,CFile::modeCreate|CFile::modeReadWrite|CFile::shareExclusive);//构造文件对象,创建一个新文件,打开文件读与写,不共享;
    CArchive ar(&file,CArchive::bNoFlushOnDelete);//创建一个序列化对象ar,并与file关联起来,当归档文件析构程序被调用时,防止归档文件自动调用Flush
    UpdateData(true);//更新 
    for(int i=0;i<=num-1;i++,n++)//写入数据
    ar<<dataX[i];
    ar.Close();//把缓冲区的数据刷新后放到指定存盘
    file.Close();//关闭文件

}

}

  • 写回答

3条回答 默认 最新

  • threenewbee 2016-07-11 15:53
    关注

    CArchive本身不支持追加,你非要用它,你可以定义一个数组,先读取原来文件的数据到数组,然后再写回去,然后再写你新添加的数据。

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料