【问题标题】:Print a string that understands newlines (\n), in Erlang在 Erlang 中打印一个可以理解换行符 (\n) 的字符串
【发布时间】:2016-08-13 13:56:54
【问题描述】:

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

我怎样才能打印到屏幕(或文件),这样的字符可以理解它们是什么(例如换行符)?

【问题讨论】:

    标签: erlang


    【解决方案1】:

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

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

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

    ~s

    使用字符串语法打印参数。如果不存在 Unicode 翻译修饰符,则参数是 iolist()binary()atom()。如果 Unicode 翻译修饰符 (t) 有效,则参数为 unicode:chardata(),这意味着二进制文件采用 UTF-8。字符打印时不带引号。该字符串首先被给定的精度截断,然后填充并对齐到给定的字段宽度。默认精度为字段宽度。

    ~p

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-12
      • 2013-03-01
      • 1970-01-01
      • 2018-10-21
      相关资源
      最近更新 更多