2011-01-13 124 views

回答

6

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

int i; 
if (cin >> i) 
    cout << i; 
else 
    cout << "Not a valid number!"; 
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; 
} 
0

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