问题描述
- 在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 *”我改变那个字符集,又会有新的其他错误出来。
哎,小白求解答,有没有推荐的文章将这些啥啥间的转换的,已经晕了
解决方案
错误较多。建议你学习一下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);
解决方案二:
我对照那个孙鑫的视频编的,用VC2013版的就各种问题来了,上网搜啥错误的都是什么类型,字符转化错的,这个程序只是一小部分
时间: 2024-11-05 15:01:56