getline(cin, var) not working!

getline(cin, var) not working!

本文关键字:not working var cin getline      更新时间:2023-10-16

由于某些奇怪的原因,getline()函数没有正常工作。我有我的程序循环通过递归(return main();)。下面的代码第一次运行时很正常。

cout << "Enter a phrase: ";
string user;
getline(cin, user);

然而,在调用递归之后,程序跳过允许我输入的步骤。结果是字符串user为空。知道为什么吗?

谢谢。

对main的递归调用在c++中没有很好地定义(在C中有),这可能是也可能不是问题的原因。

调用cin.clear()在循环之前清除所有标志。

编辑:感谢@Xeo的指出,也应该调用cin.ignore()来丢弃新的行字符-它可能仍然在缓冲区中…