Season2015 2015-12-07 13:45 采纳率: 0%
浏览 2237

在VC++2013版中使用itoa函数(被各种字符转换弄晕了)

void CTestDlg::OnClickedBtnAdd()
{
int num1, num2, num3;
char ch1[10], ch2[10], ch3[10];
GetDlgItem(IDC_EDIT1)->GetWindowText(_T("ch1"), 10);
GetDlgItem(IDC_EDIT1)->GetWindowText(_T("ch2"), 10);

num1 = atoi(ch1);
num2 = atoi(ch2);
num3 = num1 + num2;

_itoa_s(num3, ch3, 10);
GetDlgItem(IDC_EDIT3)->SetWindowText(_T("ch3"));

}
按照这个编辑,最后出现的Number3 中的值为2,但是显示的是ch3
图片说明
开始用 itoa(num3,_T( "ch3"), 10);
_就报错了error C2664: “char *itoa(int,char *,int)”: 无法将参数 2 从“const wchar_t [4]”转换为“char *”

我改变那个字符集,又会有新的其他错误出来。
哎,小白求解答,有没有推荐的文章将这些啥啥间的转换的,已经晕了

  • 写回答

2条回答 默认 最新

  • ysuwood 2015-12-07 16:04
    关注

    错误较多。建议你学习一下sscanf和ssprintf。
    更好用。

        int num1, num2, num3;
        char ch1[10]="1", ch2[10]="2", ch3[10];
        GetDlgItem(IDC_EDIT1)->GetWindowText(ch1);//修改
        GetDlgItem(IDC_EDIT1)->GetWindowText(ch2);//修改
        num1 = atoi(ch1);
        num2 = atoi(ch2);
        num3 = num1 + num2;
    
        _itoa_s(num3, ch3,10, 10);//修改,第三个参数是ch3的长度
        GetDlgItem(IDC_EDIT3)->SetWindowText(ch3);//修改
        printf("%s",ch3);
    
    评论

报告相同问题?