C++怎么使用cin.get后怎么刷新缓冲区

#include<iostream>usingnamespacestd;voidmain(){chars1[100],s2[100];cin.get(s1,100);ci... #include <iostream>
using namespace std;
void main()
{
char s1[100],s2[100];
cin.get(s1,100);
cin.get(s2,100);
cout<<s1<<s2<<endl;
cout<<"End."<<endl;
}
很简单的一个程序,但是只能cin数组s1的内容而已,s2却不能输入,请问该怎么刷新缓冲区啊?
展开
 我来答
i_dovelemon
2012-11-24
知道答主
回答量:17
采纳率:0%
帮助的人:5.2万
展开全部
cout<<endl;就可以了 endl有取消缓存的功能
yuhaifei12
2012-11-24 · TA获得超过664个赞
知道小有建树答主
回答量:120
采纳率:0%
帮助的人:141万
展开全部
为什么你要用cin.get()函数呢?
cin.get()是保留回车在输入流队列中的.而cin是丢弃回车的.
所以你只要这样就可以了。
cin>>s1;
cin>>s2;
追问
因为我要输入空格。
追答
你可以在2个cin.get()之间加入一句cin.ignore(1024,EOF);
这是在忽略流中的数据。相当于给流清空了。
或者用cin.sync();
这是在清空输入流里面的数据。
附上源码:
#include
using namespace std;
void main()
{
char s1[100],s2[100];
cin.get(s1,100);
cin.sync(); //此处清空输入流
cin.get(s2,100);

cout<<s1<<s2<<endl;
cout<<"End."<<endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
残影之月殇
2012-11-24 · 超过12用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:32.7万
展开全部
cout<<endl;刷新缓冲区并换行
cout<<flush;刷新缓冲区;
cout<<ends;刷新缓冲区;
cout<<unitbuf<<" "<<noutibuf; unitbuf 刷新缓冲区;
任何输出之前是输入的话 刷新缓冲区
任何输入之前是输出的话 刷新缓冲区
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
欧洲竹子2a
推荐于2016-11-30 · TA获得超过232个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:203万
展开全部
#include <iostream>
using namespace std;
void main()
{
char s1[100],s2[100];
cin.get(s1,100);
cin.get();//这里加上一句。取掉回车。

cin.get(s2,100);
cout<<s1<<s2<<endl;
cout<<"End."<<endl;
}
追问
除了这个方法还有吗?其实我的本意是想问有什么取消缓冲区的函数或语句什么的。
追答
cin.sync();用这个可以清空整个缓冲区。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式