在Erlang中打印一个理解换行符(\n)的字符串

hor*_*air 1 erlang

我有这样的事情:Run = "Test run [number\n".当我这样做时io:format("~p", [Run]),我没有看到换行符(它打印\n在字符串中).

如何打印到屏幕(或文件),这样的字符可以理解它们(例如换行符)?

Dog*_*ert 8

您需要使用~s格式字符串而不是~p.

1> Run = "Test run [number\n".
"Test run [number\n"
2> io:format("~s", [Run]).
Test run [number
ok
Run Code Online (Sandbox Code Playgroud)

有关不同控制序列的更多详细信息,请访问io:format:http://erlang.org/doc/man/io.html#format-3

~s

使用字符串语法打印参数.如果没有Unicode转换修饰符,则参数为iolist()a binary(),a 或an atom().如果Unicode转换修饰符(t)生效,则参数为unicode:chardata(),意味着二进制文件为UTF-8.字符打印时不带引号.首先按给定的精度截断字符串,然后填充并对齐到给定的字段宽度.默认精度是字段宽度.

~p

使用标准语法以相同的方式写入数据~w,但将打印表示长于一行的术语分成多行并合理地缩进每行.不支持左对齐.它还尝试检测可打印字符列表并将其输出为字符串.Unicode转换修饰符用于确定哪些字符是可打印的.