缓冲区还是没有搞懂!谢谢

yeliguo12345 2008-07-30 04:58:32
#include <iostream>
#include<string>
using namespace std;
int main()
{
string word;
while(cin>>word)
cout<<word<<endl;
return 0;
}
先声明这个程序是对的;
我想问的是当我输入hello word时。应该是将hello word同时放入缓冲区对吧。那么当我第一次执行cout<<word<<endl时
输出hello然后再换行,刷新缓冲区,那么缓冲区里就应该没有了东西了啊,为什么还会会输出word啊?
谢谢了,
...全文
177 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵Andy 2008-08-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 coverallwangp 的回复:]
endl刷新的是输出缓冲区,不是输入缓冲区。
所以你的world也能打出来。
[/Quote]
试一下这个。

#include <iostream>
#include <string>
using namespace std;
int main()
{
string word;
while(cin>>word)
cout<<word<<endl;
cout<<word<<endl;
system("pause");
return 0;
}

我想它可以让你明白。
RFbenson 2008-08-01
  • 打赏
  • 举报
回复
输入缓冲是行缓冲。当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储。每当按下回车键后,cin.get() 就会检测输入缓冲区中是否有了可读的数据。
cout将输入缓冲区的数据>>到输出缓冲区,输出并endl刷新输出缓冲区,因为循环了2次,所以输入2个(空格符为界)

可以参看

http://blog.csdn.net/wplxb/archive/2006/10/14/1334183.aspx

或者

百度一下
e_sharp 2008-08-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 k2eats 的回复:]
你输入了2次数据,输出2次数据啊,标准IO 是行缓冲,会一直等待你输入完一行才输出结果
所以会u那样的结果:
推荐一篇文章:
http://hi.baidu.com/zhouwanli/blog/item/d5ec9f888f5a6997a5c27276.html
[/Quote]
wangdeqie 2008-08-01
  • 打赏
  • 举报
回复
最直接的理解就是执行了两次循环而已
jinjunweiruan 2008-07-30
  • 打赏
  • 举报
回复
..学习。。。
K行天下 2008-07-30
  • 打赏
  • 举报
回复
你输入了2次数据,输出2次数据啊,标准IO 是行缓冲,会一直等待你输入完一行才输出结果
所以会u那样的结果:
推荐一篇文章:
http://hi.baidu.com/zhouwanli/blog/item/d5ec9f888f5a6997a5c27276.html
lizhaochai 2008-07-30
  • 打赏
  • 举报
回复
记得输入和输出缓冲区是两个不同的缓冲区,继续往下看,再回头你就明白啦
jay的Fans 2008-07-30
  • 打赏
  • 举报
回复
刷新的是输出缓冲区
cout << endl;
lingol 2008-07-30
  • 打赏
  • 举报
回复
晕,输入缓冲和输出缓冲是不同的……
coverallwangp 2008-07-30
  • 打赏
  • 举报
回复
endl刷新的是输出缓冲区,不是输入缓冲区。
所以你的world也能打出来。
yeliguo12345 2008-07-30
  • 打赏
  • 举报
回复
最好谁能给个详细的连接,应为缓冲区一直搞得不是很懂。
hai040 2008-07-30
  • 打赏
  • 举报
回复
输入hello word是放在输入缓冲
cin把hello拿出来给word
cout把word放进输出缓冲
endl刷新输出缓冲把hello输出
hurry281 2008-07-30
  • 打赏
  • 举报
回复
你输入的是hello word
程序中循环了两次啊
cin在默认情况下是有空格,或者制表符为判断标志的 

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧