为什么它总是给零输出?

bbj*_*sfj 1 c++ io

int i;
cin>>i;
cout<<i
Run Code Online (Sandbox Code Playgroud)

当我们输入字符即'A'时为什么它给出零输出?

pax*_*blo 7

因为A它不是一个适合存储在整数中的数值,所以它将保留你的整数,如下所示:

#include <iostream>
int main (void) {
    int i = 12345;
    std::cin >> i;
    std::cout << i << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当您运行该代码并输入时A,它会输出,12345因为该值不会更改.

如果你想要真正强大的输入,通常最好输入行作为字符串然后自己转换它们.

"米老鼠"程序或者您完全控制输入的程序可以使用您正在使用的那种输入法,严格的代码应该使用更合适的方法.


如果您的意图是将输入字符转换为整数代码,则可以使用以下内容:

#include <iostream>
int main (void) {
    char c;
    std::cin >> c;
    std::cout << (int)c << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)


Pup*_*ppy 6

在继续操作之前,应始终检查操作是否成功.

int i;
if (cin >> i)
    cout << i;
else
    cout << "Not a valid number!";
Run Code Online (Sandbox Code Playgroud)