2014-01-29 90 views
-3

我對編程和C++極其新穎。我的問題是,如何首先檢查輸入是一個整數,如果不是,則返回無效響應。如果我輸入數字,但是如果我輸入一個字母,它就會進入無限循環。我試過使用!cin但沒有成功。這裏的問題是,其中位部分:檢查輸入是有效的C++在做while while循環

do 
    { 
     if(Z < 0 || Z > 118 || !cin) 
     { 
      cout <<"You have entered an invalid value.\n"; 
     } 
     cout <<"\nPlease enter the atomic number, Z:\n"; cin>>Z; // Ask user to enter atomic number 
    } 

    while (Z < 0 || Z > 118 || !cin); 

回答

1

您可以使用表達式cin >> z的結果,在條件

int z; 

while(cin >> z && (z < 0 || z > 118)) { 
    cout <<"You have entered an invalid value.\n"; 
    cout <<"\nPlease enter the atomic number, Z:\n"; 
}