char input1;
std::cout << "input1 : ";
std::cin >> input1;
int input2;
std::cout << "input2 : ";
std::cin >> input2;
std::cout << input1 << std::endl;
std::cout << input2 << std::endl;
return 0;
我在输入 1 处写了 'a',在输入 2 处写了 'a'。
Ouput is like this.
input1 : a
input2 : a
a
-858993460
我很好奇...'a' 章程在 12 月是 97。为什么打印-858993460? 'a' 不会自动转换为 97?为什么?
最佳答案
a
作为字符串,不能按照 std::cin
规则转换为 int
。考虑一下:a
不是以 10 为底的有效整数。std::cin
将无法转换 string "a"
到 int
。
它打印 -858993460
的原因是因为 int
没有初始化,所以它可以打印任何东西,也可以不打印任何东西,或者做任何它想做的事情(查找未定义的行为).
尝试这样的事情:
char input2_chr;
std::cin >> input2_chr;
int input2 = input2_chr;
关于c++ - 为什么字符 'a' 没有自动转换为 97?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13362343/