从文本中读取的中文字符显示为整形数
我从一个文件中读取2个中文,用FileRead()函数,但让它在一个Edit控件上显示出来的却是一个整形数
zi=new WORD[2];
iBytesRead=FileRead(iFileHandle,zi,4);
Edit6->Text=WideString(*zi);
怎样让它显示中文?
本人新手,还请多多指教
问题点数:20、回复次数:3Top
1 楼nipperhjw()回复于 2006-03-18 23:41:54 得分 10
不明白你为什么要这么读,而且最后一句也有问题,这样会只显示一个字符
给你一种方案:
char *zi=new char[4];
iBytesRead=FileRead(iFileHandle,zi,4);
zi[4] = '\0';
Edit1->Text=WideString(zi);
Top
2 楼rainfall19831109(恩恩)回复于 2006-03-18 23:42:41 得分 10
WORD是个unsigned short型
你读取的文件内容用WORD作为缓存空间的话
你现实出来的结果当然是整型的数啦。。。
给你个例子:
int hndFile = FileOpen("C:\\1.txt",fmOpenRead);
int nSize = FileSeek(hndFile,0,2);
FileSeek(hndFile,0,0);
char *pBuf = new char[size + 1];
FileRead(hndFile,pBuf,size);
pBuf[size] = '\0';
FileClose(hndFile);
//此时,pBuf里的就是你文件的内容了。。。包括中文,你可以这样看看结果
ShowMessage(pBuf);Top
3 楼shooter556(枪手)回复于 2006-03-19 00:02:24 得分 0
多谢两位,哎,是我自己一下子转不过弯来~Top




