将ASCII转换为Wchar CString测试~

  1.  一 首先定义一个数据的结构体
  2. struct  Student
  3. {
  4.     BYTE bName[8];
  5.     BYTE bAge[4];
  6.     BYTE bAddress[20];
  7. };
  8. 二 定义一个转换测试函数
    1. BOOL SetStuInfo(Student stuSet)
    2. {
    3.     FILE *fp;
    4. //  char str[SIZE],ch;
    5. //  int i=0;
    6.     fp=fopen("test.txt","w");
    7. //  printf("Please input a string:/n");
    8. //  while((ch=getchar())!='!'&&i<SIZE)
    9. //      str[i++]=toupper(ch);
    10. //  str[i]='/0'; /*手动加一个结束标志*/
    11. //  printf("%s/n",str);
    12. //  fprintf(fp,"%s/n",str);
    13. //  fwrite(str,i,1,fp);/*两种输出方式*/
    14.     fprintf(fp, "%s/n""------------------case1------------------");
    15.     fprintf(fp, "%s/n", stuSet.bName);
    16.     fprintf(fp, "%s/n", stuSet.bAge);
    17.     fprintf(fp, "%s/n", stuSet.bAddress);
    18.     fprintf(fp, "%s/n""----------------------------------------");
    19.     
    20.     BOOL bResult = TRUE;
    21.     WCHAR  strName[8];  
    22.     WCHAR  strAge[4];
    23.     WCHAR  strAddress[20];
    24.     TCHAR  Test[20] =_T("I中国人");
    25.     CHAR TempArray[20];
    26.     strcpy(TempArray,"中1过1");
    27.     DWORD dwNum ;
    28.     
    29.     memcpy (TempArray, stuSet.bName, sizeof(stuSet.bName));
    30.     dwNum = MultiByteToWideChar (CP_ACP, 0, TempArray, -1, NULL, 0);
    31.     MultiByteToWideChar (CP_ACP, 0, TempArray, -1, strName, dwNum);
    32.     memcpy (TempArray, stuSet.bAge, sizeof(stuSet.bAge));
    33.     dwNum = MultiByteToWideChar (CP_ACP, 0, TempArray, -1, NULL, 0);
    34.     MultiByteToWideChar (CP_ACP, 0, TempArray, -1, strAge, dwNum);
    35.     memcpy (TempArray, stuSet.bAddress, sizeof(stuSet.bAddress));
    36.     dwNum = MultiByteToWideChar (CP_ACP, 0, TempArray, -1, NULL, 0);
    37.     MultiByteToWideChar (CP_ACP, 0, TempArray, -1, strAddress, dwNum);
    38.     fprintf(fp, "%s/n""------------------case2------------------");
    39.     fprintf(fp, "%s/n", strName);
    40.     fprintf(fp, "%s/n", strAge);
    41.     fprintf(fp, "%s/n", strAddress);
    42.     fprintf(fp, "%s/n", Test);
    43.     fprintf(fp, "%s/n""----------------------------------------");
    44.     CString strSTUInfo;
    45. //  MessageBox(NULL, strSTUInfo, _T("Title"), MB_OK);
    46.     strSTUInfo.Format(_T("Name='%10s' Age='%11s' Address='%11s'"), strName, strAge, strAddress);
    47. //  MessageBox(NULL, strSTUInfo, _T("Title"), MB_OK);
    48.     fprintf(fp, "%s/n""------------------case3------------------");
    49.     fprintf(fp, "%s/n", strSTUInfo);
    50.     fprintf(fp, "%s/n""----------------------------------------");
    51.     strSTUInfo.Format(_T("Name='%10s' Age='%11s' Address='%11s'"), stuSet.bName, stuSet.bAge, stuSet.bAddress);
    52.    
    53.     fprintf(fp, "%s/n""------------------case4------------------");
    54.     fprintf(fp, "%s/n", strSTUInfo);
    55.     fprintf(fp, "%s/n""----------------------------------------");
    56.     CString csName;
    57.     CString csAge;
    58.     CString csAddress;
    59.     csName += stuSet.bName;
    60.     csAge += stuSet.bAge;
    61.     csAddress += stuSet.bAddress;
    62.     strSTUInfo.Format(_T("Name='%s' Age='%s' Address='%s'"), csName, csAge, csAddress);
    63. //  MessageBox(NULL, strSTUInfo, _T("Title"), MB_OK);
    64.     fprintf(fp, "%s/n""------------------case5------------------");
    65.     fprintf(fp, "%s/n", csName);
    66.     fprintf(fp, "%s/n", csAge);
    67.     fprintf(fp, "%s/n", csAddress);
    68.     fprintf(fp, "%s/n", strSTUInfo);
    69.     fprintf(fp, "%s/n""----------------------------------------");
    70.     csName="";
    71.     csAge="";
    72.     csAddress="";
    73.     csName += strName;
    74.     csAge += strAge;
    75.     csAddress += strAddress;
    76.     
    77.     strSTUInfo.Format(_T("Name='%s' Age='%s' Address='%s'"), csName, csAge, csAddress);
    78.     fclose(fp);
    79.     return TRUE;
    80. }
    81. 三 运行产看测试结果
      1. void CASIIandUnicodeTestDlg::OnTestStruct() 
      2. {
      3.     // TODO: Add your control notification handler code here
      4.     Student SetInfo ={"1戴1勇","25","1江1苏1科1技1大1学1"};
      5. //  strcpy(SetInfo.bName, "Jacky");
      6. //  strcpy(SetInfo.bAge, "25");
      7. //  strcpy(SetInfo.bAddress, "JiangSu University");
      8.     SetStuInfo(SetInfo);
      9.     int i;
      10.     i=100;
      11. }
      12. 四 查看测试结果
      13. ------------------case1------------------
        1戴1勇
        25
        1江1苏1科1技1大1学1
        ----------------------------------------
        ------------------case2------------------
        1
        2
        1
        I中国人
        ----------------------------------------
        ------------------case3------------------
        Name='         1' Age='          2' Address='          1'
        ----------------------------------------
        ------------------case4------------------
        Name='    1戴1勇' Age='         25' Address='1江1苏1科1技1大1学1'
        ----------------------------------------
        ------------------case5------------------
        1戴1勇
        25
        1江1苏1科1技1大1学1
        Name='1戴1勇' Age='25' Address='1江1苏1科1技1大1学1'
        ----------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值