Чтение нескольких слов из пользователя / консоли с использованием fread в Erlang
Я хочу прочитать несколько слов и сохранить их в переменной, используя 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 ответ
Решение
Смотрите 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).