zoukankan      html  css  js  c++  java
  • C 使用wprintf,_tprintf 打印简体中文的方法 【Locale.h】

    {
    char* paName = "测试中";
            wchar_t* pwName = L"测试中";
           
            printf(paName); //输出为:测试中
            wprintf((wchar_t*)paName); //输出为:空
          
            printf((char*)pwName); //输出为:乱码
            wprintf(pwName); //输出为:空
        }
        如果将程序改写如下,则输出的结果就不一样了
        {
    char* paName = "测试中";
            wchar_t* pwName = L"测试中";
           
           setlocale(LC_ALL, "chs");
          
            printf(paName); //输出为:测试
            wprintf((wchar_t*)paName); //输出为:空
           
            printf((char*)pwName); //输出为:乱码
            wprintf(pwName); //输出为:测试
        }
        从上面两个代码片断可以看出:setlocale()对printf()没有影响,同时对char*的字符串也没有影响。唯一受到影响的是wprintf()这个函数了。我通过调试器查看了paName和pwName的字符,他们分别是:

           paName :b2e2 cad4 d6d0 …… 应该是CHS编码(也就是代码页936)

          -------------------

          以上是网上找到的解决方法

  • 相关阅读:
    CodeForces 7B
    CodeForces 4D
    离散化
    线段树入门
    洛谷 P3951 小凯的疑惑(赛瓦维斯特定理)
    Codeforces 1295D Same GCDs (欧拉函数)
    Codeforces 1295C Obtain The String (二分)
    Codeforces 1295B Infinite Prefixes
    Codeforces 1295A Display The Number(思维)
    Codeforces 1294F Three Paths on a Tree(树的直径,思维)
  • 原文地址:https://www.cnblogs.com/niuniu502/p/1392636.html
Copyright © 2011-2022 走看看