2017-11-27 9 views
-1

私はいくつかの数字を読んでいます。入力は次のとおりです。Cin読み込みまで ';' cppに見つかりました

1 2 3 4 ; 2 3 4 5 6; 

「;私はそれとそれまでの数字で何かしたい。現在、私は以下を使用しています:

しかし、このようにして、cinは ';'

+2

[ 'のstd :: getline'](http://en.cppreference.com/w/cpp/string/basic_string/getline)STD'とともに:: istringstream'はあなたがやりたいようになります – Justin

+0

'std :: cin'が失敗状態にある場合、読み込む次の文字はあなたの例では'; ''になり、' clear() 'を使い' ';'続行するキャラクター。 – user0042

+1

この回答のオプション2を見てください:https://stackoverflow.com/a/7868998/4581301。 'while(std :: getline(infile、line、 ';'))')を指定し、ファイルストリームを 'cin'に置き換える機能を利用してください。 – user4581301

答えて

0

cahrを読んで確認することができます。それが数字でない場合は、あなたが欲しいものを返してください。それ以外の場合は、cin.putback(char)を使用してcharを戻し、intを読み込みます。

char c; 
while (1) { 
    cin >> c; 
    if (c < '0' || c >'9') { // is not digit 
     // do something 
     return 0; 
    } 
    cin.putback(c); 
    cin >> num; 
} 
関連する問題