Экранирование возврата \ b в эликсире не работает - PullRequest
0 голосов
/ 17 ноября 2018

Backspace escape

Из моего опыта в C

iex> IO.puts("Hello Wor\bld\b!")

должно на самом деле вернуть

"Hello Wol!"

При этом это означает, что \b фактически отодвинул персонажа, который предшествовал ему. Поэтому я попытался сделать то же самое в эликсире и получил другой результат с тем же. Выход выглядит следующим образом Вывод по моим записям

"Hello World!"

То же самое происходит при выходе за новую строку. \n Пожалуйста, помогите .. Попытка решить ката здесь. Другие экранирующие символы:

\a BEL (0x07) 
\b BS (0x08)
\d DEL (0x7f)
\e ESC (0x1b) 
\f FF (0x0c)
\n NL (0x0a)
\r CR (0x0d) 
\s SP (0x20)
\t TAB (0x09)
\v VT (0x0b) \
\uhhh 1–6 hex digits 
\xhh 2 hex digits

1 Ответ

0 голосов
/ 17 ноября 2018

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

Используйте :stderr, чтобы напечатать вашу строку, она не тронута erl драйвер:

iex|1 ▶ IO.puts(:stderr, "Hello Wor\bld\b!")
Hello Wol!

Если у вас есть код в файле / проекте, который запускается с mix или непосредственно как elixir my_file.ex, очевидно, что все будет работать для любого стандартного вывода.

...