У меня есть приложение, которое реализует интерактивную оболочку, похожую на то, как работает консоль Python/irb. Теперь проблема заключается в том, что если пользователь случайно нажимает ^D
, выдается EOF, и мой вызов getline()
возвращает пустую строку, которую я рассматриваю как «нет ввода» и снова отображаю подсказку.
Затем это приводит к бесконечному циклу, который печатает подсказку.
Теперь в Python я бы решил эту проблему, поймав EOFError
, но в C++ не возникает никаких исключений, которые я мог бы поймать, и, похоже, в cin
нет настройки для игнорирования EOF.
Любые подсказки?