2017-06-07 9 views
-3

私はベクトルにintを読み込むコードを持っています。ユーザがintにcharを入力した場合、どのように入力を使いますか?

vector <int> v; 

for (int i; cin >> i;){ 
    v.push_back(i); 
} 

ループを終了するには、ユーザーは '/'を入力する必要があります。どうすればいい? つまり、ユーザーがintにcharを入力すると、入力はどのように使用されますか?

+1

をご入力のラインを読み、それを行うためのコードを記述し、それを解析する場合:それはチェックアウトする複数の基準に対する誤差

があるだろう変換することはできません。代わりに、整数だけを受け入れるコードを書いています。 –

答えて

0

ストリームから個々の文字(または文字列)を読み取る必要があります。次に、それが実際に数字かどうかを判断します。一致する場合は変換してください(例:std::stoiを使用)。そうでない場合は、「終了」シンボルであるかどうかをチェックし、そうであれば、実行する必要があるその他のものに進みます。それが他のものであれば、通常はエラーを報告し、インタラクティブに使用することになっている場合は、おそらくユーザーに正しいことを入力する別の機会を与えます。 uは文字を入力しようとした場合:、文字の配列を読んで、それが配列の終端にない場合は、ご希望の文字列に等しい場合、文字列を比較し、

std::vector <int> v; 
std::string buffer; 

while(true){ 
    std::cin >> buffer; 

    if(buffer == "/") break; 

    v.push_back(std::stoi(buffer)); 
} 

NOTEをint型に変換する

関連する問題