VS2008 C++字符数组怎么在MessageBox中显示

FILE *pFile=fopen("1.txt","r");
TCHAR ch[100];
fread(ch,1,100,pFile);
fclose(pFile);
MessageBox(ch);
我想打开1.txt文件,里面有一句话,我使用了以上程序。但打开是乱码?怎么使用Messagebox函数![图片说明](https://img-ask.csdn.net/upload/201504/16/1429150570_653826.png)

你代码不对吧,TCHAR是宽字符,占2个byte,安全的办法是sizeof计算下TCHAR的大小,再传给fread的第2个参数。

同时,你写文件的代码里的fwrite,第2个参数也得用一样的写法,不然肯定出问题。

    FILE *pFile=fopen("1.txt","r");
    TCHAR ch[100];
    fread(ch,sizeof(TCHAR),100,pFile);
    fclose(pFile);
    MessageBox(ch);

写文件的部分,你自己再看看。

首先,你的代码有代码出现没有字符串结束符的问题。
其次,这个要看 1.txt 中文本的编码格式与工程的编码设置(多字节还是 Unicode),如果是 ASCII+多字节, 应该可以正确显示;

先调试下看看读取文件有没有乱码。

你的文件内容本身是什么编码,是不是UNICODE,估计是ANSI,而ch是宽字符,所以读入的时候就乱码了

我发现是写入文件的程序有问题,改了一下就可以了