2017-03-26 14 views
0

「Hello」のような文字列入力を試みたときにエラーが発生しています。どのように私は正しい入力を与えるように私に求める必要があります文字列入力文字列を与えることを確認することができますか?検証の確認方法

int y,m,d,h,min,s; 
    do 
    { 
     cout<<" Please enter the year: "; 
     cin>>y; 
    }while(y < 1970 || y > 2020); 

答えて

1

入力は(あなたのケースで)intに変換できない場合は、failbitstd::cinのために設定されます。これはcin.fail()を呼び出すことで取得できます。

std::cin >> y; 
if (std::cin.fail()) { 
    std::cout << "data entered is not of int type"; 
} 

また!std::cinの代わりstd::cin.fail()を使用することができます。

1
#include "iostream" 
#include<limits> 

using namespace std; 

int input() 
{ 
    int y; 
    do 
    { 
     std::cin.clear(); 
     std::cin.ignore(numeric_limits<streamsize>::max(), '\n'); 
     std::cout << "Give the year" << std::endl; 
     std::cin >> y; 
    } 
    while (std::cin.fail() || y < 1970 || y > 2020); 
    return y; 
} 

main() 
{ 
    int x = input(); 
} 
+0

それでもエラーが表示されます。私が欲しいのは、私が "Hello"入力を与えると、同じ質問をもう一度聞かなければならないということです。しかし、それは無限の時間を質問している、私は何も書き込むことはできません – Cool

+0

私は編集し、答えをテストしました。それがあなたのために働くならば、他人を助けるために答えを受け入れます。もしそうでなければ、教えてください。 –

関連する問題