Экранирование возврата \b в эликсире не работает

Бегство назад

Из моего опыта в Си

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 ответ

Решение

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

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

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

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

Другие вопросы по тегам