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 << 单词不会在屏幕上显示任何内容。

我很困惑,因为我认为只要输入一个单词就应该显示输出。例如。

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

3 回答 3

1

不确定我是否理解您的问题,但如果我没看错的话:流提取运算符会一直读取,直到遇到空格,然后再使用空格。您不会得到一个仅由空白字符组成的新单词。


几分钟后:我又回去重新阅读,现在我想我明白你在问什么:两个流不同步,所以输入和输出不能按照你建议的方式交错。

于 2011-05-05T23:40:52.237 回答
0

尝试做

cout << flush;

或者

cout << endl;

(在一段时间内)

于 2011-09-28T21:10:52.147 回答
0

cin读取以空格分隔的字符串,但空格在进程中被丢弃

于 2011-05-05T23:40:29.507 回答