zoukankan      html  css  js  c++  java
  • C++ WIN32 程序 ,从屏幕输入 数据 然后给WCHAR 数组赋值

     1     char lingshi_sBuf[20] = { 0 };
     2     cout << "输入测试项目" << endl;
     3     cin.get(lingshi_sBuf, 20);//输入字符串,当输入是Enter键时结束输入
     4     cout << "当前项目为:" << lingshi_sBuf << endl;
     5     //获取输入缓存大小
     6     int lingshi_sBufSize = strlen(lingshi_sBuf);
     7     //获取输出缓存大小
     8     //VC++ 默认使用ANSI,故取第一个参数为CP_ACP
     9     DWORD lingshi_dBufSize = MultiByteToWideChar(CP_ACP, 0, lingshi_sBuf, lingshi_sBufSize, NULL, 0);
    10     printf("需要wchar_t%u个
    ", lingshi_dBufSize);
    11     wchar_t* lingshi_dBuf = new wchar_t[lingshi_dBufSize];
    12     wmemset(lingshi_dBuf, 0, lingshi_dBufSize);
    13     //进行转换
    14     int lingshi_nRet = MultiByteToWideChar(CP_ACP, 0, lingshi_sBuf, lingshi_sBufSize, lingshi_dBuf, lingshi_dBufSize);
    15      
    16     if (lingshi_nRet <= 0)
    17     {
    18         cout << "转换失败" << endl;
    19         DWORD dwErr = GetLastError();
    20         switch (dwErr)
    21         {
    22         case ERROR_INSUFFICIENT_BUFFER:
    23             printf("ERROR_INSUFFICIENT_BUFFER
    ");
    24             break;
    25         case ERROR_INVALID_FLAGS:
    26             printf("ERROR_INVALID_FLAGS
    ");
    27             break;
    28         case ERROR_INVALID_PARAMETER:
    29             printf("ERROR_INVALID_PARAMETER
    ");
    30             break;
    31         case ERROR_NO_UNICODE_TRANSLATION:
    32             printf("ERROR_NO_UNICODE_TRANSLATION
    ");
    33             break;
    34         }
    35     }
    36     else
    37     {
    38         cout << "转换成功" << endl;
    39         cout << lingshi_dBuf;
    40     }
    41     memcpy(&g_block_data_name[0], &lingshi_dBuf[0], 2);//tick
    42     memcpy(&g_block_data_name[1], &lingshi_dBuf[1], 2);//tick
    43     memcpy(&g_block_data_name[2], &lingshi_dBuf[2], 2);//tick
    44     memcpy(&g_block_data_name[3], &lingshi_dBuf[3], 2);//tick
    45     delete lingshi_dBuf;

    以上代码,应该还有内存泄漏的问题

  • 相关阅读:
    2018,10,19模拟赛
    培训期间做题整理(部分)
    纪中2018暑假培训day5提高b组改题记录
    纪中2018暑假培训day7提高b组改题记录
    纪中2018暑假培训day3提高a组改题记录(混有部分b组)
    纪中2018暑假培训day1提高b组改题记录
    python中的‘/’和'//'
    对于python中的join函数和+
    python中的casefold函数和lower()函数区别
    F
  • 原文地址:https://www.cnblogs.com/wenluderen/p/15160740.html
Copyright © 2011-2022 走看看