最近用MFC做文件IO,发现使用CFile类读取文件数据到char *时,末尾总会多几个莫名奇妙的乱码字符。
解决方法如下,char * 申请空间时,多new一个,读取文件后,最后一个值赋值为'\0',这样就i不会有末尾的乱七八糟的乱码了。
…………
…………
if ( bOpen ) // CFile::Open的返回值
{
ULONG nLen = fileOpr.GetLength();
if (nLen < 1)
return strDataRet;
char *buff = new char[nLen+1];
memset(buff, 0, nLen);
fileOpr.Read(buff, nLen);
buff[nLen] = '\0';
strDataRet.Format("%s", buff);
delete []buff;
buff = NULL;
}
…………
…………