| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Prolog > Ввод-вывод SWI Prolog |
| Автор: dodikk 20.12.2008, 13:48 | ||
| Подскажите пожалуйста, как правильно ввести символьную строку из консоли в SWI Prolog программу. В мануале нашел предикат read/1, коим и пытался воспользоваться. Он все прекрасно вводит, но не в виде строк, а в виде двоичного дампа. Нашел в мануале следующее :
Попробовал оба способа. Во втором случае на консоль выводятся красивые строки, но я никак не могу заставить их работать со своими предикатами. В первом случае на экран продолжает выводиться всякая фигня, а не строки. Предикаты описаны следующим образом : bordersOn('Country1', 'Country2'). Спасибо. |
| Автор: dodikk 21.12.2008, 12:46 | ||||||||
| Помоги себе сам получается. Сломал себе половину мозга, пока нашел, в чем дело. На самом деле после установки флагов :
Пролог в строку ничего не конвертирует. Просто предикат write/1 и прочие предикаты вывода "угадывают", что там строка и выводят ее красиво. То есть, кроме установки флагов следовало еще изменить способ хранения предикатов. Описывать их следует следующим образом :
Именно с двойными кавычками. При вводе из консоли с помощью read/1, следует вводить строки, используя обратные кавычки :
Добавлено через 1 минуту и 1 секунду При вводе из консоли с помощью read/1, следует вводить строки, используя обратные кавычки :
Иначе не работает. |