在一用vc写的console程序中,有一宽字符串(TCHAR)包含汉字信息,但用函数 wprintf
输出时,在汉字出会中断显示,用wcstombs转换为char型字符串后用printf输出,结果一样,请各位高手指点,谢谢!

解决方案 »

  1.   

    直接用char[]类型的字符串就可以了啊!
    用cout输出和printf都可以的!
      

  2.   

    TO riverboat(诸葛不亮):我没说清楚!字符串本来是TCHAR[]型,这时包含汉字信息,跟踪发现向char[]转换时,汉字部分就丢失了
      

  3.   

    是不是在9X系统下?
    9X系统对中文字符的处理是采用MBCS的,即每个中文字可能要超过2字节表示,所以wprintf输出包含汉字信息的宽字符串在汉字会出错而中断显示。
      

  4.   

    这样没问题。
    WCHAR buf[1024];
    char* temp="你好,世界";
    mbstowcs(buf,temp,strlen(temp)+1);
    wprintf(L"%s\n",buf);
    但如果:
    WCHAR buf[]=L"你好,世界";
    就有问题,L对中文字的处理好象有问题,但是英文字就没问题。
      

  5.   

    如果你是unicode編譯環境應該不會有問題.
    WCHAR 就是對的.
    否則就要用 paul2002
    的方法先轉換..再輸出