4

退格逃逸

根据我在 C 方面的经验

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

实际上应该返回

"Hello Wol!"

这意味着它\b实际上退格了它之前的字符。所以我尝试在 elixir 中做同样的事情并得到不同的输出。输出如下 输出根据我的条目

"Hello World!"

在转义换行时也会发生这种情况。\n 请帮忙..试图在这里解决一个kata。其他转义字符如下

\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
4

1 回答 1

4

Erlang console erl, iex, 是建立在上面的,对标准输入和输出玩弄脏把戏。

用于:stderr打印您的字符串,它不受erl驱动程序的影响:

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

如果您在文件/项目中有与mix或直接一起运行的代码,那么elixir my_file.ex一切显然都适用于任何标准输出。

于 2018-11-17T06:06:17.430 回答