我何时以及为什么需要在C ++中使用cin.ignore()?
我用C ++编写了一个非常基本的程序,要求用户输入一个数字,然后输入一个字符串。令我惊讶的是,在运行程序时,它永远不会停止询问字符串。它只是跳过了它。在对StackOverflow进行一些阅读后,我发现我需要添加一行说:
cin.ignore(256, '\n');
在获取字符串输入的行之前。添加修复问题并使程序正常工作。我的问题是为什么C ++需要这一cin.ignore()
行,我如何预测何时需要使用cin.ignore()
?
这是我写的程序:
#include <iostream>#include <string>using namespace std;int main(){ double num; string mystr; cout << "Please enter a number: " << "\n"; cin >> num; cout << "Your number is: " << num << "\n"; cin.ignore(256, '\n'); // Why do I need this line? cout << "Please enter your name: \n"; getline (cin, mystr); cout << "So your name is " << mystr << "?\n"; cout << "Have a nice day. \n";}
小怪兽爱吃肉
紫衣仙女
慕沐林林
相关分类