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();//关闭文件
}
}
CArchive本身不支持追加,你非要用它,你可以定义一个数组,先读取原来文件的数据到数组,然后再写回去,然后再写你新添加的数据。
http://bbs.csdn.net/topics/380130566
c++中有文件模式app,和ate可以实现。vc中考虑指针移到文件末尾输入便可以不覆盖。或者如果你有对话框的话显示文本,便不考虑这些问题