c++怎样清空缓冲区

#include<iostream.h>main(){chara,zx='y';while(zx=='y'){cout<<"请输入a的值:";cin>>a;if(a%2=... #include<iostream.h>
main()
{char a,zx='y';
while(zx=='y'){
cout<<"请输入a的值:";
cin>>a;
if(a%2==0)cout<<"a是偶数:"<<'\n';
if(a%2==1)cout<<"a是奇数:"<<'\n';
cout<<"继续?按 y 或者 n \n";
cin>>zx;

}
}

这个直接考到C++就可以显示汉字
#include<iostream.h>
main()
{char a,zx='y';
while(zx=='y'){
cout<<"ÇëêäèëaμÄÖμ:";
cin>>a;
if(a%2==0)cout<<"aêÇÆæêy:"<<'\n';
if(a%2==1)cout<<"aêÇżêy:"<<'\n';
cout<<"¼ìDø? °′y »òÕß n\n";
cin>>zx;

}
}
我想用zx的值判断循环是否继续 每次循环都要扫描一次zx的值 扫描字符前是不是要清空缓冲区 用什么语句清空呢
fflush(stdin)输入后运行 说是undeclared identifier
是不是有个库函数没包括 #include<???.h>

c语言中不清楚就会把回车输入到字符型 c++看着也像是因为那个原因 我用的是VC++6.0 http://zhidao.baidu.com/question/111299352.html
展开
 我来答
afeihito
推荐于2017-09-17 · TA获得超过945个赞
知道小有建树答主
回答量:371
采纳率:100%
帮助的人:148万
展开全部
如果是要清空输出流的话,方法很多,最常见的
如<<endl执行时,就会清除一次输出流。还有其他方式,如:
1. 程序结束时。
2. 缓存区满了
3. 或者将输入输出流关联起来,用tie操作符,cin.tie(&cout)
4. 用unitbuf操作符清空缓存区,cout << unitbuf

参考资料: c++ primer 第四版

可以叫我表哥
推荐于2017-09-26 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1464984
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部
  每个IO对象管理一个缓冲区,如cin管理一个输入缓冲区, cout管理一个输出缓冲区。
使用cout输出hello,刷新了对应的输出缓冲区,对输入缓冲区没有影响,输入缓冲区里没有被读取的内容可以继续读取。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dwthead
2009-08-13 · TA获得超过2309个赞
知道小有建树答主
回答量:1478
采纳率:0%
帮助的人:1931万
展开全部
fflush(stdin)
如果按照要求输入的话 不用清

输入a之后还有其他值误输 把他加在cin>>zx;之前
我的2008 直截在std下就能用

加个#include<stdlib.h> 试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱霈常颖然
2020-03-23 · TA获得超过3920个赞
知道小有建树答主
回答量:3151
采纳率:25%
帮助的人:174万
展开全部
如果是要清空输出流的话,方法很多,最常见的
如<<endl执行时,就会清除一次输出流。还有其他方式,如:
1.
程序结束时。
2.
缓存区满了
3.
或者将输入输出流关联起来,用tie操作符,cin.tie(&cout)
4.
用unitbuf操作符清空缓存区,cout
<<
unitbuf
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
踏岸寻柳
2009-08-13 · TA获得超过6912个赞
知道小有建树答主
回答量:1776
采纳率:0%
帮助的人:638万
展开全部
不需要清除,因为调用cin>>zx;语句时已经刷新了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式