CFile file("D:\\t.txt", CFile::modeRead);
int nlen = file.GetLength();
char * buf;
buf = new char[nlen+1];
memset(buf, 0, nlen+1);
file.Read(buf, nlen);
file.Close();
GetDC()->TextOut(0,0,buf);
此段代码经测试无乱码。
纠正一下你的代码:
1.没有清零,导致字符串没有结束字符'\0';
2.str=pBuf[i] 你这句只能得到其中的一个字符,应该用 str += pBuf[i] 吧;
3.如果文件很大,就要考虑分段读取;
4.目前的代码只能显示出单行,对于文件里的回车并没有专门处理。
再接再励,代码就是一点点堆起来的,跟学英语、说话一样~