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 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)