现在文件中有一行汉字:
测试
我用_wfopen打开文件("r"),然后用fgetws将其读到一个buffer中。
然后我用MessageBox输出此buffer,此时输出的不是“测试”两个字,
而是buffer中四个字节各个字节的数值对应的字符。
请问此时我怎样才能用MessageBox输出“测试”两个字呢?

解决方案 »

  1.   

    可以直接用ReadFile()读出文件内容保存到字符串,然后用MessageBox直接输出这个字符串。
      

  2.   

    danxuezx
     
    (……) 等 级: 
    结帖率:101.04% ??帮人家结帖?
      

  3.   

    #include "stdafx.h"
    #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内容如下:
    测试
      

  4.   

    你的TXT文件编码注意了,默认是ANSI,你需要改成Unicode编码
      

  5.   

     
    传的长度有问题..
    读取的时候指定 ccs=UNICODE
      

  6.   

    1、首先需要将记事本的编码改为Unicode,确保读取的数据编码和显示环境一致2、读取时使用rb来读取这两个缺一不可,我已经试过了,能行
      

  7.   

    上面描述的是我封装的类中的一个内容。我的工程是Unicode ,如果用户(其他RD)在使用的时候它的txt是ANSI的我该如何处理?也就是说这个功能怎样才能做到自适应用户的txt?
      

  8.   


    不管txt是什么格式保存的 , 读出来转成unicode可否??
      

  9.   


    因为字符集很多,因此转换不好做,因为存在这样的问题:用户给你了一个文本文件,你根本不知道它是用什么来编码的,unicode?utf-8?gb2312?gbk?...???如果使用你所说的方法,你就必须对它的编码进行猜测,而猜测有可能出现错误,最终会出现这样哪样的问题,我曾经做过这样的项目。因此你必须限定用户使用某种编码,然后将它转成unicode或直接让用户使用unicode就行了
      

  10.   

    用wsprinf 格式化一次