getline(cin,var)不起作用!

| 由于某些奇怪的原因,getline()函数无法正常工作。我有通过递归的程序循环(返回main();)。第一次运行以下代码,就可以了。
cout << \"Enter a phrase: \";
string user;
getline(cin, user);
但是,在调用递归后,程序将跳过允许我键入的步骤。结果是字符串用户为空。有什么想法吗? 谢谢。     
已邀请:
调用
cin.clear()
在循环之前清除所有标志。 编辑:感谢@Xeo指出,还应该调用
cin.ignore()
放弃换行符-仍可以在缓冲区中...     
在C ++中没有很好地定义对main的递归调用(在C中)。那可能是或不是您的问题的原因。     

要回复问题请先登录注册