我尝试输入数据gets()
函数,但每当程序执行到留置权时gets
,它会忽略它。
当我使用gets()
没有之前的数据输入,它可以正常运行。但是当我在输入数据后使用它时,就会出现问题。
这是在先前的数据输入之后使用它的代码(因此在执行中我无法将数据输入到字符串):
int main() {
char str[255];
int a = 0;
cin >> a;
if(a == 1) {
gets(str);
cout << "\n" << str << endl;
}
}
我该如何解决这个问题?
注意:cin.getline 也会发生同样的情况
After
cin >>a
当你输入a
然后输入,还有一个\n
留下的字符cin
,因此,当您使用cin.getline()
or gets(str)
它会读取换行符。
尝试以下操作:
cin >>a;
cin.ignore(); //^^this is necessary
if(a==1){
gets(str);
}
你最好使用 C++ 方式读取输入:
cin >> a;
cin.ignore();
string str;
if (a == 1)
{
getline(cin, str);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)