【问题标题】:Question on combination of >>, << operators & cin and cout objects关于 >>、<< 运算符和 cin 和 cout 对象组合的问题
【发布时间】:2011-05-05 23:32:39
【问题描述】:
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

【问题讨论】:

  • 在您按 Enter 之前,它不会读取它们,如果您是这个意思的话。

标签: c++ whitespace iostream cout cin


【解决方案1】:

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


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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      尝试做

      cout << flush;
      

      或者

      cout << endl;
      

      (在while里面)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-17
        • 2016-07-08
        • 1970-01-01
        • 2011-11-22
        • 2011-01-25
        • 2022-11-16
        相关资源
        最近更新 更多