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