如何在以空格分隔的输入后显示剩余字符?或者,如果错误地询问,我怎么知道他们藏在那里需要被忽略?
我必须做些什么才能避免使用cin.ignore()
?我试图了解如何使用get()
和getline()
。它似乎只有在我第一次使用cin.ignore()
时才有效,这对我来说似乎效率低下。
我的代码提示我输入一个数字,看起来很像这样:
int previousVar;
std::cout<<"\n\tWhat value should previousVar be?:\t";
std::cin>>previousVar;
之后,我立即添加了此代码(从cpp参考网站复制粘贴):
std::string name;
//std::cin.ignore();
std::cout << "Please, enter your full name: ";
std::getline (cin, name);
std::cout << "Hello, " << name << "!\n";
cin>>beforeExit;
我的代码完全跳过名字收集部分到我的程序结束暂停,除非我有cin.ignore()
。我在其中一个cpp参考页面上读到了我可能从之前的cin
输入中剩下的字符。我在angular 2 docs和http://www.cplusplus.com/forum/beginner/111268/看到了类似的问题,但我不确定他们会问我和我一样的问题。
谢谢!