向编程大神询问一下MFC中关于文件写入的问题

我想实现这样一个功能:如果能够打开桌面上名为“XXX.txt”的文件,就直接向里写入6行数据(依次为CString类型的两个变量m_CODE和date,以及四个均为int... 我想实现这样一个功能:如果能够打开桌面上名为“XXX.txt”的文件,就直接向里写入6行数据(依次为CString类型的两个变量m_CODE和date,以及四个均为int型的变量AP1至AP4);如果不行的话,就在桌面创建一个名为“XXX.txt”的文件,然后再向里写入这6行数据。
我主要是不清楚MFC中打开和创建某路径下的文件该怎么做。而且,假如我把上述功能放在一个button类中反复调用的话,会不会这次写入的数据会把上次写入的覆盖掉?
展开
 我来答
bhtzu
2014-03-14 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4268万
展开全部
	CFile f;
CString fpath = _T("d:\\mypath\\myfile.txt");
f.Open(fpath,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite);
//modeNoTruncate 联合创建属性,如果这个文件已创建,则不删除原文件内容

f.SeekToEnd();//跳到文件末尾,不覆盖原有内容
int len = fpath.GetLength();
f.Write(fpath.GetBuffer(0),len*sizeof(TCHAR));
fpath.ReleaseBuffer();
f.Close();

应该适合了你所有需要的情况,无论文件是否存在、是否有内容都没问题。

追问

实在是不好意思,还有两个小问题想问一下:

1、 f.Write(fpath.GetBuffer(0),len*sizeof(TCHAR));

      这句话的目的是什么呢?

       

2、我给编辑框添加了一个int 变量m_AP01,用来接收数据。 然后我在一个button中想判断其输入的范围是否合适,结果不符合范围的数据时,没有出现提示,这是为什么啊?

      

追答
  1. 给你演示一个CString变量是如何写入文件的,只是懒得再弄一个变量,拿文件名字符串做示例。

  2. 代码太少,只能猜。

UpdateData(TRUE);//这个必须要有
if(m_<-200 || m_>0)
  AfxMessageBox("请输出。。。。");//推荐用这个
来自:求助得到的回答
不知名的工程师
2014-03-14 · TA获得超过292个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:160万
展开全部

我看了下 楼上的回答 他说的挺对的

不过不建议你这样用文件 最主要的是你的txt文件可能目录会变 

 你的只能在自己电脑上执行 给其他人用很有可能会出问题

建议你还是放在mfc目录下

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式