Чтение нескольких слов из пользователя / консоли с использованием fread в Erlang - PullRequest
0 голосов
/ 04 декабря 2018

Я хочу прочитать несколько слов и сохранить их в переменной, используя Erlang.Когда я использую fread для записи строки, она записывает только первое слово.

1> {ok,[Message]} = io:fread("Type your message : ", "~ts").
Type your message : Hello world
{ok,["Hello"]}
2>  world

Таким образом, «Hello» сохраняется в Message вместо «Hello world».Как я могу сохранить оба слова в переменной сообщения.

Я ищу общий ответ, чтобы я мог читать много слов, а не только 2 слова, поэтому, пожалуйста, не публикуйте ответы только для 2 слов.


Желаемый выход

{ok,["Hello world"]}

1 Ответ

0 голосов
/ 04 декабря 2018

См. io: get_line / 1

1> Line = io:get_line("Type your message: ").
Type your message: Hello world. Goodbye.
"Hello world. Goodbye.\n"

2> Line.
"Hello world. Goodbye.\n"

3> DesiredOutput = {ok, [string:strip(Line, right, $\n)]}.
{ok,["Hello world. Goodbye."]}

4> DesiredOutput.
{ok,["Hello world. Goodbye."]}

Строка:

Символы в строке заканчиваются переводом строки (или концом файла)).Если устройство ввода-вывода поддерживает Unicode, данные могут представлять кодовые точки> 255 (диапазон latin1).

...