> Erlang中文手册 > format/2 按照指定的格式把数据写入到输出端上

io:format/2

按照指定的格式把数据写入到输出端上

用法:

format(Format, Data) -> ok

内部实现:

-spec format(Format, Data) -> 'ok' when
      Format :: format(),
      Data :: [term()].

format(Format, Args) ->
    format(default_output(), Format, Args).

把参数 Data 里的每一项根据 Format 的输出格式写入到默认输出端。

其中参数 Format 的写法形式是 "~F.P.PadModC"

  • F表示输出长度和格式
  • P表示输出精度
  • Pad表示输出填充字符
  • Mod控制类型的修饰
  • C表示控制类型

比如常见的格式参数有:

~c 表示只接受 ASCII 码所表示的数字,例如下面 10.5c 表示打印 5 次 a,长度是 10 的字符串(长度不足时空格表示):

io:format("|~10.5c|", [$a]).  

~f 表示浮点数输出,默认保留 6 为小数,下面的 15.2f 表示数字总共占 15 位,小数保留 2 位(保留时四舍五入)

Pi = math:pi(),
io:format("Pi is ~15.2f", [Pi]).  

~s 表示按字符串形式输出:

io:format("abcdefg~s", [hijklmn]).  
Chinese = unicode:characters_to_list("中文测试"),
io:format("~ts~n", [Chinese]).

~w 表示输出一个 Erlang term

io:format("List is ~w", [[97]]).  

~p 与 ~w 类似,不过 ~p 的输出是有格式的,默认一行的显示的最大长度为80,则多行时会自动换行

L = lists:seq(1, 100),
io:format("L is ~p", [L]).

~n 表示换行符

io:format("newline1~n newline2~n", []).