现在文件中有一行汉字:
测试
我用_wfopen打开文件("r"),然后用fgetws将其读到一个buffer中。
然后我用MessageBox输出此buffer,此时输出的不是“测试”两个字,
而是buffer中四个字节各个字节的数值对应的字符。
请问此时我怎样才能用MessageBox输出“测试”两个字呢?
测试
我用_wfopen打开文件("r"),然后用fgetws将其读到一个buffer中。
然后我用MessageBox输出此buffer,此时输出的不是“测试”两个字,
而是buffer中四个字节各个字节的数值对应的字符。
请问此时我怎样才能用MessageBox输出“测试”两个字呢?
解决方案 »
- ---***ActiveX控件调用JS函数***---
- 窗口句柄能释放不?
- mfc release 动态链接与静态链接区别
- 用IM(如MSN,SKype,QQ)给好友播放语音文件时,对方听到的声音效果很差,有很严重的嘈杂声,而用microphone聊天的时候效果可以,为什么???
- AFX_IDS_APP_TITLE是什么?
- 文件查找的暂停问题
- 如何知道自己的程序因切换(如alt+tab)而不在前台运行?
- Can you tell me what the following piece of code is for?
- 关于文件保存对话框
- 没有找到C:\Windows\Temp\hankjin.temp.0
- 千分散尽还复来!!!
- 我在ListCtrl中用SHGetFilelnfo插入系统图标为什么关闭后第二次打开就没有图标了
(……) 等 级:
结帖率:101.04% ??帮人家结帖?
#include <windows.h>
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{
FILE* fp;
fp = _wfopen(_T("test.txt"),_T("r"));
if(fp == NULL)
return 0; TCHAR tcBuf[MAX_PATH] = {0};
while(!feof(fp))
{
fgetws(tcBuf,sizeof(TCHAR)*MAX_PATH,fp);
MessageBox(NULL,tcBuf,NULL,NULL);
}
return 0;
}
txt内容如下:
测试
传的长度有问题..
读取的时候指定 ccs=UNICODE
不管txt是什么格式保存的 , 读出来转成unicode可否??
因为字符集很多,因此转换不好做,因为存在这样的问题:用户给你了一个文本文件,你根本不知道它是用什么来编码的,unicode?utf-8?gb2312?gbk?...???如果使用你所说的方法,你就必须对它的编码进行猜测,而猜测有可能出现错误,最终会出现这样哪样的问题,我曾经做过这样的项目。因此你必须限定用户使用某种编码,然后将它转成unicode或直接让用户使用unicode就行了