如何将字面整数显示为字符

lil*_*roo 2 c++ int char

我有一个整数1,我想在C++中将其显示为字符"1".到目前为止,我只设法将它从整数65转换为字符'A'.你怎么阻止这个?

Mat*_*lia 5

int theDigit = 1;
char ch = theDigit+'0';
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为它保证1字符序列'0'... '9'是连续的,所以如果你将你的数字添加到'0'你会得到相应的字符.显然,这只适用于单个数字(如果theDigit是20,你会得到一个不相关的字符),如果你需要将一个整数你需要snprintf(在C中)或字符串流(在C++中)转换为字符串.


  1. C++ 11,[lex.charset]3:

在源和执行基本字符集中,上述十进制数字列表中0之后的每个字符的值应比前一个值大1.

顺便说一句,我认为他们并没有因为EBCDIC而在字母字符中强制要求连词.