我何时以及为什么需要在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";}
jeck猫
小怪兽爱吃肉
紫衣仙女
慕沐林林
随时随地看视频慕课网APP
相关分类