我有这样的事情:Run = "Test run [number\n"
。当我io:format("~p", [Run])
时,我看不到换行符(它在字符串中打印为\n
)。
如何打印到屏幕(或文件),这样的字符可以理解为什么(例如换行符)?
答案 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翻译修饰符,则参数为
~s
,iolist()
或binary()
。如果Unicode转换修饰符(atom()
)生效,则参数为t
,表示二进制文件为UTF-8。字符打印时不带引号。首先按给定的精度截断字符串,然后填充并对齐到给定的字段宽度。默认精度是字段宽度。
unicode:chardata()
使用标准语法以与
~p
相同的方式写入数据,但将打印表示长于一行的术语分成多行并合理地缩进每一行。不支持左对齐。它还尝试检测可打印字符列表并将其输出为字符串。 Unicode转换修饰符用于确定哪些字符是可打印的。