为什么它总是给零输出?

时间:2011-01-13 12:14:01

标签: c++ io

int i;
cin>>i;
cout<<i

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

3 个答案:

答案 0 :(得分:7)

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

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

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

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

“Mickey-mouse”程序或您完全控制输入的程序可以使用您正在使用的输入方法,严格的代码应该使用更合适的方法。


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

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

答案 1 :(得分:6)

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

int i;
if (cin >> i)
    cout << i;
else
    cout << "Not a valid number!";

答案 2 :(得分:0)

因为值'A'没有存储在变量i中,因为它是一个整数变量。我相信这就是屏幕上打印初始值12345的原因......