c++中用cin.getline输入一行字符串是不等待输入就过去了是怎么回事?

student*stu=newstudent[num];for(inti=0;i<num;i++){stu[i].sum=0;cout<<"输入第"<<i+1<<"个学生... student *stu = new student[num];
for(int i=0; i<num; i++)
{
stu[i].sum = 0;
cout<<"输入第"<<i+1<<"个学生的姓名:"<<endl;
cin.getline(stu[i].strName ,30);
cout<<"输入第"<<i+1<<"个学生的学号:"<<endl;
cin.getline(stu[i].strNum,10);
cout<<"输入第"<<i+1<<"个学生的成绩:"<<endl;
}
是这个语句,stu是定义的结构体,strName[30]是定义在结构体中的字符型数组,在运行时cout 的内容可以停顿,但是两个cin.getline,的内容都不停顿,直接到了下个语句是为什么?
展开
 我来答
坑里有个坑
2015-07-02 · 超过22用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:23.9万
展开全部
cout后面停顿是getline在等待输入,实际停顿的时候getline
追问

输出的结果是这样的,更本都不等待输入,两个cout就连续输出了,这是怎么回事?

追答
没有清空缓存区
在每个输入前面加 cin.clear();cin.sync();
键盘未找到
2015-07-03 · TA获得超过328个赞
知道小有建树答主
回答量:403
采纳率:100%
帮助的人:278万
展开全部
缓存问题,解决方法是加一句fflush(stdin); (对应头文件是stdio.h),或者在每个cin后加一个getchar()
追问
这样的确可以让程序暂停但是,输入的内容显示不出来
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式