MFC C++ 计算导致 9 后 A 然后回到 1

mfc c++ calculation resulting in a after 9 then back to 1

本文关键字:然后 C++ 计算 MFC      更新时间:2023-10-16

为了了解 C++ 中的计算,我从 Basic 开始并想出了这段代码。

m_cont.GetWindowText(m_value);
int a;
a = _wtoi(m_value) + 1;
TCHAR buff[50];
GetDlgItem(IDC_EDIT1)->SetWindowText(_itot(a, buff, 50)); 

它通过单击一个有效的按钮将 1 添加到编辑控件中的任何数字上,但它变为 1、2、3、4、5、6、7、8、9、a、1,然后重复。 我知道这是一个非常基本的计算,但是为什么它没有达到 10 并永远继续加 1?

_itot的第三个参数(这是非标准itoa函数的变体)不是缓冲区的长度,而是进行转换的基础。因此,您的代码以 50 为基数进行转换,其中数字"a"跟在 9 之后。应将基数指定为 10。

相关文章: