关于>>,<<的组合的问题运营商& cin和cout对象

时间:2011-05-05 23:32:40

标签: c++ whitespace iostream cout cin

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

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

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

3 个答案:

答案 0 :(得分:1)

不确定我理解你的问题,但如果我正确地读你:流提取操作符会一直读到它会遇到空白,然后消耗空白。你没有得到一个只包含空格字符的新单词。


几分钟后:我又回去重读了,现在我想我明白你在问什么:两个流不同步,所以输入和输出不能像你一样交错建议。

答案 1 :(得分:0)

cin读取由空格分隔的字符串,但在过程中丢弃空格

答案 2 :(得分:0)

尝试

cout << flush;

或者

cout << endl;

(在里面)

相关问题