关于>>、<<组合的问题运营商 & cin 和 cout 对象
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 << word 屏幕上不显示任何内容。
我很困惑,因为我认为输入一个单词后就应该显示输出。例如。
ABC 4 ABC DEF 3 DEF GHI 2 GHI JKL 1 JKL MNO 0 MNO
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不确定我理解你的问题,但如果我没理解错的话:流提取运算符会读取直到遇到空格,然后消耗空格。您不会得到仅由空白字符组成的新单词。
几分钟后:我回去重新阅读,现在我想我明白你在问什么:两个流不同步,因此输入和输出不能按照你建议的方式交错。
Not sure I understand your question, but if I'm reading you right: The stream extraction operator reads until it encounters whitespace, and then consumes the whitespace. You don't get a new word consisting of just the whitespace characters.
A few minutes later: I went back and re-read again, and now I think I understand what you're asking: the two streams are not synchronized, so the input and output can't be interleaved in the way you suggest.
cin 读取以空格分隔的字符串,但在此过程中空格被丢弃
cin read strings separated by space but space are discarded in the process
尝试做
Or
(在 while 内)
Try doing
Or
(inside the while)