我想打印第一个号码。由于某种原因,它打印出49而不是1 ...
int n = 111111251;
string s = to_string(n);
int num = s[0];
cout << num << endl;
答案 0 :(得分:2)
打印49
,因为那是ascii value of 1
。
如果您要打印字符,只需直接打印s[0]
,或将其正确转换回int
即可。请考虑以下代码:
int main()
{
int n = 111111251;
string s = to_string(n);
cout << s[0] << endl;
int num = s[0];
cout << num << endl;
int num2 = s[0] - '0';
cout << num2 << endl;
return 0;
}
打印出来:
1
49
1
答案 1 :(得分:0)
49是ASCII值1。
希望我帮忙,
答案 2 :(得分:0)
在将整数转换为字符串时,将字符串中的第一个元素的类型从“char”更改为“int”。这会影响输出:字符表示仍为“1”,但数值为(ASCII)49(请查看http://en.wikipedia.org/wiki/ASCII)。
您可能需要char character = s[0]; cout << character << endl;
或int num = s[0]; cout << char(num) << endl;