Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
由于某些奇怪的原因,getline() 函数无法正常工作。我有我的程序循环通过递归(return main();)。第一次运行下面的代码,没问题。
cout << "Enter a phrase: "; string user; getline(cin, user);
但是,在调用递归之后,程序会跳过允许我输入的步骤。效果是字符串 user 为空。任何想法为什么?
谢谢。
在 C++ 中没有很好地定义对 main 的递归调用(它在 C 中)。这可能是或不是您的问题的原因。
cin.clear()在循环之前调用以清除任何标志。
cin.clear()
编辑:感谢@Xeo 指出,还应该调用cin.ignore()丢弃换行符——它可能仍在缓冲区中......
cin.ignore()