zoukankan      html  css  js  c++  java
  • 2Windows程序设计 Unicode

      Unicode字符集和ASCII码字符集

        

                  

        下面是代码示例: ASCII码字符集      Unicode字符集     通用版本字符集

           程序1

    #include <stdio.h>
    #include <stdlib.h>
    #include <wchar.h>
    #include <locale.h>
    #include <tchar.h>
    
    /* ASCII码字符集   双字节字符集   多字节字符集 */
    //int main()
    //{
    //    char c = 'A';  //char是一个字节
    //    char *str = "日本";  //不推荐使用,容易发生乱码,实际上还是ASCII字符
    //    int i;
    //    i =  strlen(str);
    //    printf("%c\n", c);
    //    printf("%s\n", str);
    //    printf("%d\n", i);
    //    return 0;
    //}
    
    /* Unicode宽字符集 */
    //int main()
    //{
    //    wchar_t c = L'中';   //宽字符,Unicode,两个字节
    //    wchar_t str[] =L"中国";
    //    int i;
    //    setlocale(LC_ALL,"chs");   //若是Unicode必须设置本地区域语言中文
    //    i = wcslen(str);
    //    wprintf(L"%lc\n", c);
    //    wprintf(L"%ls\n", str);
    //    wprintf(L"%d\n", i);
    //}
    
    
    //通用的类型、函数
    int main()
    {
        //char c;
        //wchar_t c;
        //CHAR c;
        //WCHAR c;
        TCHAR str[] = _T("印度");
        //setlocale(LC_ALL, "chs"); //若是Unicode字符集必须设置本地区域语言中文
        _tprintf(_TEXT("%s\n"), str);
        return 0;
    
    }

        

        程序2  windows 通用函数

    #include <windows.h>
    
    int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInsance,
                        PSTR szCmdLine, int iCmdShow)
    {
        TCHAR  *content= TEXT("hello 通用 中国 tchar");
        TCHAR  *title = TEXT("标题 通用 中国 tchar");
    
        MessageBoxA(NULL, "hello ASCII 中国", "ASCII 标题", MB_YESNO | MB_ICONINFORMATION);
        MessageBoxW(NULL, L"hello Unicode 中国", L"Unicode 标题", MB_YESNO | MB_ICONINFORMATION);
        MessageBox(NULL, TEXT("hello 通用 中国"), TEXT("通用 标题"), MB_YESNO | MB_ICONINFORMATION);
        MessageBox(NULL, content, title, MB_YESNO | MB_ICONINFORMATION);
    }

                      

                      

         程序3 C语言标准函数

    #include <stdio.h>
    #include <stdarg.h>
    
    int my_printf(const char *szFormat, ...)
    {
        int iReturn;
        va_list pArgs;  // 头文件定义 typedef char* va_list;
    
        va_start(pArgs, szFormat);   //指向 szFormat 的下一个参数
    
        //返回值 传入的元素的个数
        iReturn = vprintf(szFormat, pArgs);  //pArgs  指向数组的第一个指针
    
        va_end(pArgs);
    
        return iReturn;
    }
    
    
    
    //标准的C
    int main()
    {
        int i = 1;
        char szBuffer[100];
        int x=100, y=200, z=300;
    
        //会调用vprintf  
        printf("hello =  %d,%d,%d\n", x, y, z);   //传入的参数是灵活多变的,上面的函数模仿
        
        my_printf("%d,%d\n", x, y);
    
        sprintf(szBuffer, "不安全的Hello %d\n", i);   //如果存的值很大就会占用后面的内存区
        printf(szBuffer);
    
        _snprintf(szBuffer, 100, "安全的Hello %d\n", i); //截取到50后就不在使用
        puts(szBuffer);
    
        printf("hello %d\n", i);
        return 0;
    }

       

     

        程序4 windows函数

    #include <windows.h>
    #include <stdio.h>
    #include <tchar.h>
    #include <locale.h>
    
    //最后一个程序 使用 Unicode 字符集  显示乱码,未找到原因。
    
    //ASCII字符集 版本
    //int WINAPI WinMain(HINSTANCE hInstance,
    //                    HINSTANCE hPrevInstance,
    //                    PSTR szCmdLine,
    //                    int iCmdShow
    //                    )
    //{
    //    int i = 5;
    //    char szBuffer[50];
    //
    //    //sprintf(szBuffer, "Hello %d\n", i);   //不安全标准的C语言函数,无法处理Unicode字符集
    //    _snprintf(szBuffer,50, "安全的:Hello %d\n", i);   //安全标准的C语言函数,无法处理Unicode字符集
    //
    //    MessageBoxA(NULL, szBuffer, "ASCII版本", MB_YESNO | MB_ICONINFORMATION);
    //    return 0;
    //}
    
    
    
    //Unicode字符集 版本
    //int WINAPI WinMain(HINSTANCE hInstance,
    //                    HINSTANCE hPrevInstance,
    //                    PSTR szCmdLine,
    //                    int iCmdShow
    //                    )
    //{
    //    int i = 5;
    //    wchar_t szBuffer[50];   //WCHAR
    //
    //    //swprintf(szBuffer,50, L"Hello %d\n", i); //不安全
    //    _snwprintf(szBuffer, 50, L"安全的:Hello %d\n", i); //安全的
    //
    //    MessageBoxW(NULL, szBuffer, L"Unicode版本", MB_YESNO | MB_ICONINFORMATION);
    //    return 0;
    //}
    
    
    //通用 版本
    //int WINAPI WinMain(HINSTANCE hInstance,
    //                    HINSTANCE hPrevInstance,
    //                    PSTR szCmdLine,
    //                    int iCmdShow
    //                    )
    //{
    //    int i = 5;
    //    TCHAR szBuffer[50];
    //
    ////    _stprintf(szBuffer, TEXT("Hello %d\n"), i);  
    //    _sntprintf(szBuffer,50, TEXT("安全的:Hello %d\n"), i);  //安全的
    //
    //    MessageBox(NULL, szBuffer, TEXT("通用版本"), MB_YESNO | MB_ICONINFORMATION);
    //    return 0;
    //}
    
    int CDECL MessageBoxPrintf(TCHAR *szCaption,TCHAR *szFormat,...)
    {
        TCHAR szBuffer[1024]; //定义字符数组
    
        va_list pArgList;
    
        va_start(pArgList, szFormat);
    
        //把szFormat放在szBuffer字符数组中
        _vsnprintf(szBuffer, sizeof(szBuffer) / sizeof(TCHAR), szFormat, pArgList);
    
        va_end(pArgList);
    
        return MessageBox(NULL, szBuffer, szCaption,MB_YESNO | MB_ICONINFORMATION);
    }
    
    
    int WINAPI WinMain(HINSTANCE hInstance,
        HINSTANCE hPrevInstance,
        PSTR szCmdLine,
        int iCmdShow
    )
    {
        int x = 101,y = 201,z = 301;
        int cxScreen, cyScreen;
    
    
        cxScreen = GetSystemMetrics(SM_CXSCREEN);   //获取电脑屏幕宽度
        cyScreen = GetSystemMetrics(SM_CYSCREEN);   //获取电脑屏幕高度
    
        MessageBoxPrintf(TEXT("标题"), TEXT("Hello %d,%d,%d\n"), x,y,z);
        MessageBoxPrintf(TEXT("我的屏幕"), TEXT("屏幕宽度:%dpx,高度:%dpx"), cxScreen, cyScreen);
    
        return 0;
    }
  • 相关阅读:
    appium---纯web app测试
    appium---元素定位工具
    appium---[ADB] Killing adb server on port 5037报错
    pytest---自定义用例识别规则
    pytest---用例执行顺序
    解决Could not find function xmlCheckVersion in library libxml2问题
    pytest---测试框架初探
    layoutSubviews何时被调用
    'addTimeInterval:' is deprecated: first deprecated in iOS 4.0
    iOS7 表格separatorInset的处理
  • 原文地址:https://www.cnblogs.com/httpcc/p/15586716.html
Copyright © 2011-2022 走看看