2016-07-03 9 views
0

次のプログラムが入力文字を待つために2回停止することを期待しています。私が文字を入力するのを止めて待っていたら、文字を入力してEnterを押しますが、コンソールはそれ以降は「char c」を入力するのを待たずに終了し、 char b '。何故ですか?cin.getはユーザー入力を1回だけ待つ理由

#include <iostream> 

    using namespace std; 

    int main() { 
     char b; 
     cin.get(b); 
     char c; 
     cin.get(c); 
     cout << b << c << endl; 
    } 
+3

第二の文字として 'を入力し' 受け入れています。 – Beta

+0

あなたが知っているかどうかにかかわらず、複数の文字を入力しました。キーボードで何回キーを押したかを数えます。 *何かを残さないでください。 – WhozCraig

+0

実際には詐欺師ではありませんが、最初の回答を読むべきです。キャリッジリターンを無視する必要があります。 http://stackoverflow.com/questions/478258/why-is-this-cino-reading-jammed –

答えて

3

質問の状態:キーボードの一部のキーが押された

1)。

2)「Enter」とラベルされたキーボードの別のキーが押されました。

ポップクイズ:入力された文字は何文字ですか?

回答:2文字が入力されました。

最初のget()は最初の文字を読み取ります。 2番目のget()は、2番目の文字であるEnterを読み取ります。(*)

(*)上記の答えは、マルチバイト以外のロケールを想定しています。

1

用途:

char b; 
cin >> b; 
char c; 
cin >> c; 
cout << b << c << endl; 
関連する問題