一个MFC中的CString的Mid()函数使用问题?

CFilefile(fileDlg.GetFileName(),CFile::modeRead);DWORDdwFileLen;dwFileLen=file.GetLen... CFile file(fileDlg.GetFileName(),CFile::modeRead);
DWORD dwFileLen;
dwFileLen=file.GetLength();
CString ab;
file.Read(ab.GetBuffer(dwFileLen),dwFileLen);//文件中有字符abcdefgh
file.Close();
CString tmp=(a.Mid(0,3));//tmp应该是abc
MessageBox(tmp); //可tmp显示的还是abcdefgh,这是怎么回事呀??
展开
 我来答
百度网友b745e17d0f
推荐于2017-11-22 · TA获得超过1087个赞
知道小有建树答主
回答量:728
采纳率:0%
帮助的人:757万
展开全部
在file.Read(ab.GetBuffer(dwFileLen),dwFileLen);//文件中有字符abcdefgh
后面加一个ab.ReleaseBuffer();就可以了
这个是CString一个很容易出奇怪错的地方,具体原因我也不清楚
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wltongxing
推荐于2018-03-12 · 超过17用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:0
展开全部
CString tmp=(a.Mid(0,3));//tmp应该是abc
变量a是什么?是不是ab

Remarks
Returns a pointer to the internal character buffer for the CString object. The returned LPTSTR is not const and thus allows direct modification of CString contents.
If you use the pointer returned by GetBuffer to change the string contents, you must call ReleaseBuffer before using any other CString member functions. //看看这里

你读取CFile的时候可以建一个字符指针
char* buff;
file.Read(buff,dwFileLen);//文件中有字符abcdefgh
ab=buff;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xl35800
推荐于2016-07-09 · TA获得超过3487个赞
知道小有建树答主
回答量:1152
采纳率:74%
帮助的人:307万
展开全部
就是截取一段字符串,(起始地址, 截取长度)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式