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却不能输入,请问该怎么刷新缓冲区啊? 展开
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却不能输入,请问该怎么刷新缓冲区啊? 展开
4个回答
展开全部
为什么你要用cin.get()函数呢?
cin.get()是保留回车在输入流队列中的.而cin是丢弃回车的.
所以你只要这样就可以了。
cin>>s1;
cin>>s2;
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cout<<endl;刷新缓冲区并换行
cout<<flush;刷新缓冲区;
cout<<ends;刷新缓冲区;
cout<<unitbuf<<" "<<noutibuf; unitbuf 刷新缓冲区;
任何输出之前是输入的话 刷新缓冲区
任何输入之前是输出的话 刷新缓冲区
cout<<flush;刷新缓冲区;
cout<<ends;刷新缓冲区;
cout<<unitbuf<<" "<<noutibuf; unitbuf 刷新缓冲区;
任何输出之前是输入的话 刷新缓冲区
任何输入之前是输出的话 刷新缓冲区
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
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();用这个可以清空整个缓冲区。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询