2011-01-13 105 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印在屏幕上的原因...