VC++文件读取结尾乱码修正

1. 读取文件并显示,会在最后输出“铪铪”这种文字。示例代码如下:

 CFile m_file;
 m_file.Open( "example.txt",CFile::modeRead);
 DWORD MAX_LENGTH = m_file.GetLength();

 unsigned char * pData = (unsigned char*)malloc(sizeof(char) * MAX_LENGTH);

 //打印代码...

 错误原因:GetLength方法不会获取文件最后的'\0',所以显示的时候不会找到这个字符,读取最后的字符时根据内容可能会产生如上乱码。

 修正方法:

        unsigned char * pData = (unsigned char*)malloc(sizeof(char) * MAX_LENGTH +1);

        pData[MAX_LENGTH] = ‘\0’

 

你可能感兴趣的:(VC++)