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

时间:2016-04-20 17:47:19

标签: erlang

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

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

1 个答案:

答案 0 :(得分:8)

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

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

有关[{1}}:http://erlang.org/doc/man/io.html#format-3

中允许的不同控制序列的更多详细信息
  

io:format

     

使用字符串语法打印参数。如果不存在Unicode翻译修饰符,则参数为~siolist()binary()。如果Unicode转换修饰符(atom())生效,则参数为t,表示二进制文件为UTF-8。字符打印时不带引号。首先按给定的精度截断字符串,然后填充并对齐到给定的字段宽度。默认精度是字段宽度。

     

unicode:chardata()

     

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