我是C ++的高中初学者(自我开始以来不到1个月)。我一直在尝试将int转换为其char值。 (所以,5应该转换为'5')
我知道如何从char转换为int(从'5'转换为5),从中减去48,但是我无法转换为另一种方式。这是我试过的:
#include <iostream>
using namespace std;
int main()
{
int x = 5;
cout<<x<<endl;
cout<<(char)x<<endl;
cout<<static_cast<char>(x)<<endl;
cout<<"end of program"<<endl;
}
我得到的输出是
5
end of program
我不确定为什么我没有输出。感谢任何建议。
答案 0 :(得分:2)
演员表现得非常好(对于你正在做的事情)。
您正在为其{ASCII}值转换5
。查看ASCII table并查看5
代表的内容。
现在针对您尝试做的事情,尝试cout << (char)(x+48) << endl;
答案 1 :(得分:1)
尝试以下
#include <iostream>
using namespace std;
int main()
{
int x = 5;
cout << x << endl;
cout << ( char )( x + '0' ) << endl;
cout << static_cast<char>( x + '0' ) < <endl;
cout << "end of program" < <endl;
}
你不必查看ASCII表。:)考虑到有EBCDIC表。我展示的代码不依赖于编码表。 C ++标准保证所有数字字符都从'0'到'9'开始相互跟随。