【发布时间】:2009-03-23 17:32:43
【问题描述】:
我有一个实现交互式 shell 的应用程序,类似于 Python 控制台/irb 的工作方式。现在的问题是,如果用户不小心点击了^D EOF 并且我的getline() 调用返回一个空字符串,我将其视为“无输入”并再次显示提示。
这会导致打印提示的无限循环。
现在在 Python 中,我将通过捕获 EOFError 来解决该问题,但在 C++ 中,我无法捕获任何异常,而且在 cin 上似乎没有设置来忽略 EOF。
有什么提示吗?
【问题讨论】: