一个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,这是怎么回事呀?? 展开
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,这是怎么回事呀?? 展开
3个回答
展开全部
在file.Read(ab.GetBuffer(dwFileLen),dwFileLen);//文件中有字符abcdefgh
后面加一个ab.ReleaseBuffer();就可以了
这个是CString一个很容易出奇怪错的地方,具体原因我也不清楚
后面加一个ab.ReleaseBuffer();就可以了
这个是CString一个很容易出奇怪错的地方,具体原因我也不清楚
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
变量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;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是截取一段字符串,(起始地址, 截取长度)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询