Как читать ввод, пока пользователь не введет ^ X - PullRequest
3 голосов
/ 24 мая 2010

Я создаю интерпретатор для моего esolang, и мне нужно, чтобы пользователь ввел некоторый текст, который затем будет интерпретирован как программа INTERCAL. Я хочу, чтобы пользователь вводил текст, который может содержать любой символ, включая символы новой строки, до тех пор, пока пользователь не нажмет ^ X (Ctrl-X), например:

Enter your code followed by ^X:
Bla
Blablabla
Bla^X
Thank you for entering your code

(строки 2, 3 и 4 были введены пользователем)

Может кто-нибудь объяснить мне, как я могу читать ввод, включая переводы строк, пока пользователь не введет ^ X? Спасибо

Ответы [ 2 ]

1 голос
/ 24 мая 2010

Было бы лучше попросить пользователя использовать ^ D.
В большинстве систем это создает символ EOF и вызывает закрытие потока.

Таким образом, вам не нужно делать ничего особенного.
Вы просто читаете до конца входного потока.Таким образом, ваш код может быть одинаковым для чтения стандартного ввода и для чтения из файла.

1 голос
/ 24 мая 2010

^ X имеет код ASCII 24, попробуйте проверить это.

http://www.unix -manuals.com / ссылки / разное / ASCII-table.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...