0
char word[10];
int n=5;
while(n--)
{
  cin>>word;
  cout<<n<<" "<<word<<" ";
}

出力:

ABC DEF GHI JKL MNO
4 ABC 3 DEF 2 GHI 1 JKL 0 MNO

さて、私の質問は、入力バッファが空白('')に遭遇するとどうなるかということです。nは空白ごとにデクリメントされていることがわかりますが、cout<<という単語は画面に何も表示されません。

1つの単語を入力するとすぐに出力が表示されるはずだと思うので混乱しています。例えば。

 ABC 4 ABC DEF 3 DEF GHI 2 GHI JKL 1 JKL MNO 0 MNO
4

3 に答える 3

1

私があなたの質問を理解しているかどうかはわかりませんが、私があなたを正しく読んでいる場合:ストリーム抽出演算子は、空白に遭遇するまで読み取り、次に空白を消費します。空白文字だけで構成される新しい単語は取得できません。


数分後:戻ってもう一度読み直しましたが、あなたが求めていることは理解できたと思います。2つのストリームが同期されていないため、入力と出力を提案どおりにインターリーブできません。

于 2011-05-05T23:40:52.237 に答える
0

cinはスペースで区切られた文字列を読み取りますが、スペースはプロセスで破棄されます

于 2011-05-05T23:40:29.507 に答える
0

やってみてください

cout << flush;

または

cout << endl;

(しばらくの間)

于 2011-09-28T21:10:52.147 に答える