为什么第一个get()在这段代码中不起作用?

时间:2016-11-07 08:37:39

标签: c++

我已经使用dev c ++和code :: Blocks尝试了这个代码(在多个程序中)但是第一个gets()命令永远不会被执行,后面跟着cin>>

#include<iostream>
#include<stdio.h>

using namespace std;
int main()
{
int i;
char c[10], d[10];
cout<<"Enter int ";
cin>>i;
cout<<"Enter string ";
gets(c); // this is where things act all possessed
cout<<"Enter 2nd string ";
gets(d);
cout<<i<<endl<<c<<endl<<d;
return 0;
}

请帮帮我

我尝试了什么:

我尝试将变量i作为char,然后仅使用gets()来获取输入,这样可以完美地工作 但是我在一些程序中严格要求它作为一个整数,以便能够做增量/减量/无论什么

1 个答案:

答案 0 :(得分:1)

获取不是'没有被执行',而是返回一个空字符串。发生这种情况是因为cin将光标留在完成读取的行。您应该以任何可能的方式阅读此行,例如,使用相同的gets将其读取到某个缓冲区