`
zhangzhiqiangss
  • 浏览: 10949 次
社区版块
存档分类
最新评论

erlang格式化输出

 
阅读更多

io:format的格式化参数。 

c 输出多个重复的字符。 

1.io:format(”~2c”,”a”). 

结果:aa,标识输出字母2次。 

2.io:format(”~2.1c”,”a”). 

结果:_a,标识输出2个字符,1个是后面跟的字母,另一个位置用空格补充,从左开始,如果是”~-2.1c”是从右侧开始。 

s 打印字符串,按手册说只接受list,atom,2进制的结构。 

w,p是标准输出,支持term,区别是p会对输出的数据做一些分行处理,w会显示在一行。 

io_lib:format("~2.10.0B",[2]) 
结果[["0","2"]] 
2表示总位数,10B表示10进制,0表示不足的位补0 


补充: 


c 表示只接受ASCII码所表示的数字,如果传的参数是 字符串"a"或者字符a  都会报错 

Java代码  收藏代码
  1. 2>   
  2. io:format("|~10.5c|~-10.5c|~5c|~n", [$a, $b, $c]).  
  3. |     aaaaa|bbbbb     |ccccc|  
  4. ok  

10.5表示长度是10 打印5次   

~t表示按unicode输出 
Java代码  收藏代码
  1. 2>   
  2. 1> io:format("~tc~n",[1024]).  
  3. \x{400}  
  4. ok  
  5. 2> io:format("~c~n",[1024]).  
  6. ^@  
  7. ok  


f,e,g 数据类型都是跟float 
f默认保留6为小数,不足位补0,小数位数最少是1位 

Java代码  收藏代码
  1. ሀ踀130> io:format("~f~n",[97.1]).  
  2. 97.100000  
  3. ok  
  4. 131> io:format("~f~n",[97.16578]).  
  5. 97.165780  
  6. ok  
  7. 132> io:format("~15.5f~n",[97.16578]).  
  8.        97.16578  
  9. ok  
  10. 15.5表示 数字占15位,小数保留5位(保留时四舍五入)  
  11. 133> io:format("~15.0f~n",[97.16578]).  
  12. ** exception error: bad argument  
  13.      in function  io:format/3  
  14.         called as io:format(<0.24.0>,"~15.0f~n",[97.16578])  
  15. 134> io:format("~15.1f~n",[97.16578]).  
  16.            97.2  
  17. ok  
  18. 135> io:format("~3.1f~n",[97.16578]).   
  19. ***  
  20. ok  
  21. 如果给出的位数小于最小显示的位数(这里必须保留一位小数,所以(~4.1f)才能显示完全,小数点占一位 ,结构得到***  


e默认保留6为小数,不足位补0,小数位数最少是2位 
Java代码  收藏代码
  1. 142> io:format("~8.3e~n",[97.16578]).  
  2.  9.72e+1  
  3. ok  
  4. 143> io:format("~8.4e~n",[97.16578]).  
  5. 9.717e+1  
  6. ok  


g 如果   值>=0.1  <10000.0  则按f规则显示,否则按e的规则。 

s 按string语法规则输出 ,如果不带t ,参数可以使I/O 字符串,二进制数据或atom(不能使integer和float), 
如果输出规则有t 参数类型数chardata()  , 
输出结构都无引号 


Java代码  收藏代码
  1. 152>   
  2. io:format("~s~n",[{hey,hey,hey}]).  
  3. ** exception error: bad argument  
  4.      in function  io:format/3  
  5.         called as io:format(<0.24.0>,"~s~n",[{hey,hey,hey}])  
  6. 153> io:format("~s~n",["{hey,hey,hey}"]).  
  7. {hey,hey,hey}  
  8. ok  
  9.   
  10. 155> A=io_lib:write({hey,hey,hey}).  
  11. [123,["hey",44,"hey",44,"hey"],125]  
  12. 156> io:format("~s~n",[A]).                
  13. {hey,hey,hey}  
  14. ok  
  15. 157> io:format("~10.4s~n",["{hey,hey,hey}"]).  
  16.       {hey  
  17. ok  
  18. 163> io:format("~ts~n",[a]).       
  19. a  
  20. ok  
  21.   
  22. 158> io:format("~s~n",[[a]]).                  
  23. ** exception error: bad argument  
  24.      in function  io:format/3  
  25.         called as io:format(<0.24.0>,"~s~n",[[a]])  
  26.   
  27. 159> io:format("~s~n",[[97]]).  
  28. a  
  29. ok  
  30. 这里正确因为[97] = "a"  所以参数不管是atom a还是字符串“a” 结果都是atom a  
  31. 160> io:format("~s~n",[[970]]).  
  32. ** exception error: bad argument  
  33.      in function  io:format/3  
  34.         called as io:format(<0.24.0>,"~s~n",[[970]])  
  35. 161> io:format("~ts~n",[[970]]).  
  36. ϊ  
  37. ok  

w 用于输出erlang term 
Erlang代码  收藏代码
  1. 164> io:format("~w~n",[a]).   
  2. a  
  3. ok  
  4. 165> io:format("~w~n",[[a]]).  
  5. [a]  
  6. ok  
  7. 166> io:format("~w~n",[[97]]).  
  8. [97]  
  9. ok  

p 和w相识的输出规则,不同的是w输出是没有格式的,字符串会显示位ascII编码 

p的输出是有格式的 ,默认一行的显示的最大长度为80,可以自己定义显示的最大值。并且尽可能字符串输出 
Java代码  收藏代码
  1. 5> T = [{attributes,[[{id,age,1.50000},{mode,explicit},  
  2. {typename,"INTEGER"}], [{id,cho},{mode,explicit},{typename,'Cho'}]]},  
  3. {typename,'Person'},{tag,{'PRIVATE',3}},{mode,implicit}].  
  4. ...  
  5. 6> io:format("~w~n", [T]).  
  6. [{attributes,[[{id,age,1.5},{mode,explicit},{typename,  
  7. [73,78,84,69,71,69,82]}],[{id,cho},{mode,explicit},{typena  
  8. me,'Cho'}]]},{typename,'Person'},{tag,{'PRIVATE',3}},{mode  
  9. ,implicit}]  
  10. ok  
  11. 7> io:format("~62p~n", [T]).  
  12. [{attributes,[[{id,age,1.5},  
  13.                {mode,explicit},  
  14.                {typename,"INTEGER"}],  
  15.               [{id,cho},{mode,explicit},{typename,'Cho'}]]},  
  16.  {typename,'Person'},  
  17.  {tag,{'PRIVATE',3}},  
  18.  {mode,implicit}]  
  19. ok  


W,P和w,p的区别在于可以控制terms输出的深度(深度的定义?) 

Erlang代码  收藏代码
  1. 239> io:format("~W~n",[T,9]).   
  2. [{attributes,[[{id,age,1.5},{mode,explicit},{typename,...}],[{id,cho},{mode,...},{...}]]},{typename,'Person'},{tag,{'PRIVATE',3}},{mode,implicit}]  
  3. ok  
  4. 240> io:format("~W~n",[T,8]).  
  5. [{attributes,[[{id,age,...},{mode,...},{...}],[{id,...},{...}|...]]},{typename,'Person'},{tag,{'PRIVATE',3}},{mode,implicit}]  
  6. ok  
  7. 241> io:format("~W~n",[T,7]).  
  8. [{attributes,[[{id,...},{...}|...],[{...}|...]]},{typename,'Person'},{tag,{'PRIVATE',...}},{mode,implicit}]  
  9. ok  



B 同b 值为2-36  默认是10   控制按多少进制显示 

Erlang代码  收藏代码
  1. 248> io:format("|~3.16b|~n",[31]).  
  2. | 1f|  
  3. ok  
  4. 11> io:format("~.16B~n", [31]).  
  5. 1F  
  6. ok  
  7. 12> io:format("~.2B~n", [-19]).  
  8. -10011  
  9. ok  
  10. 285> io:format("~15.16.2B~n", [-19]).  
  11. 222222222222-13  
  12. ok  

X x 和B类似,比B多一个参数,显示在结果的前面 
Erlang代码  收藏代码
  1. 14> io:format("~X~n", [31,"1000#"]).  
  2. 1000#31  
  3. ok  
  4. 15> io:format("~.16X~n", [-31,"0x"]).  
  5. -0x1F  
  6. ok  


#和B类似,在结果的前面显示进制数 
Erlang代码  收藏代码
  1. 16> io:format("~.10#~n", [31]).  
  2. 10#31  
  3. ok  
  4. 17> io:format("~.16#~n", [-31]).  
  5. -16#1F  
  6. ok  
  7. ok  



同B,但打印小写字母。 

同X,但打印小写字母。 

同#,但打印小写字母。 


忽略了下一届。
分享到:
评论

相关推荐

    erlang lib of iconv

    Erlang库中的iconv是一个用于字符编码转换的模块,它在处理多语言文本和不同编码格式时扮演着重要角色。Erlang是一种并发、分布式、面向进程的编程语言,常用于构建高可用性和容错性的系统。在这个库中,iconv提供了...

    erlang 入门练习

    `~n`是一个格式化符,代表换行。 Erlang的进程间通信是通过消息传递实现的,`send`和`receive`关键字用于发送和接收消息。例如: ```erlang send_to_self() -&gt; Self = self(), Self ! message, receive ...

    erlang r17官方api及stdlib手册

    2. **io**: 提供了输入/输出功能,如`io:format/2`用于格式化打印输出,`io:get_line/1`用于读取用户输入。 3. **math**: 包含数学函数,如`sqrt/1`计算平方根,`cos/sin/tan`提供三角函数。 4. **timer**: 提供...

    erlang jiffy code

    这个过程允许我们从 Erlang 程序生成符合 JSON 标准的输出。 3. **性能优化**: Jiffy 被设计为快速和内存效率高,适合在性能敏感的场景下处理大量 JSON 数据。 4. **自定义编码和解码**: 用户可以通过提供自定义的...

    Erlang中文手册

    - **格式化输出**: 使用 `io:format("Formatted output: ~p~n", [Value]).` 格式化输出。 - **一个更大的例子**: - **示例**: 一个完整的Erlang程序通常包含模块定义、函数定义、以及可能的主函数。 - **主函数*...

    erlang学习1.pdf

    - 使用`io:format`函数格式化输出服务器响应结果。 #### 四、进阶概念 - **进程**:Erlang的核心特性之一,轻量级、独立运行单元,支持并发执行。 - **消息传递**:进程间通信的主要方式,基于异步消息传递机制。 ...

    Erlang UTF-8 转 Unicode 的字典程序

    在处理字符编码时,Erlang支持多种编码格式,其中包括UTF-8和Unicode。在Erlang中,UTF-8是一种常见的用来表示Unicode字符的编码方式,因为它既能有效地存储大多数常见字符,又具有良好的向后兼容性。 在Erlang R14...

    binpp::1234:Erlang二进制漂亮打印机

    `binpp`,全称为"Binary Pretty Printer",是一个Erlang库,其主要功能是将复杂的二进制数据结构以人类可读的格式进行输出,方便开发者调试和理解。"1234"可能是指版本号或者一个特定的标识符,表示这是binpp的一个...

    jsx:一个用于使用,生成和操作json的Erlang应用程序。 受到yajl的启发

    2. 序列化(Encoding):相反的过程是将Erlang术语编码为JSON格式。jsx能将Erlang数据结构转换为符合JSON标准的字符串或二进制流,便于在网络上传输或存储。 3. 打印(Pretty Printing):jsx还提供了美化输出的...

    dt:具有Postgres语义的Erlang日期时间库

    4. **格式化和解析**:能够将日期时间数据按照指定的格式进行输出,或者从字符串中解析日期时间,这在与用户界面交互时特别有用。 5. **时间区间处理**:提供处理时间区间的方法,例如计算两个日期时间之间的差值,...

    Erlang中的OTP简介

    Erlang的消息传递机制抽象了不同线路协议之间的区别,并提供了统一的消息格式,这使得进程间的通信变得更加简单。Erlang消息不需要解析,接收方可以直接处理,而不需要进行消息解析。此外,Erlang消息可以携带任意...

    rexbug:Redbug Erlang跟踪调试器的瘦Elixir包装器

    3. **输出格式化**: `rexbug`可以将跟踪数据转换为易于阅读和分析的格式,例如JSON或文本,便于在日志文件或终端中查看。 4. **跨语言兼容**: 由于`redbug`是Erlang的一部分,`rexbug`可以无缝地处理Elixir与Erlang...

    log4erl-0.9.0

    2. **可定制的输出格式**:log4erl支持自定义日志输出格式,可以设置日期时间、模块名、函数名、线程ID等信息的显示方式,以满足不同场景的需求。 3. **日志目标的多样性**:除了常见的控制台输出,log4erl还支持将...

    基于Matlab实现爱尔兰B公式计算并输出表格

    这暗示可能有一个MATLAB脚本或函数,它不仅能够计算公式,还能够以用户友好的格式(如表格)展示结果,这对于数据分析和报告是十分有用的。 【标签】提供了更多的上下文信息。“matlab”表明这是关于MATLAB编程的,...

    E语言搜索代码

    Erlang的标准库提供了丰富的文本处理函数,如`io:format/2`用于输出格式化的文本,`string:tokens/2`用于分割字符串。 3. **文件操作**:搜索代码通常需要遍历目录结构,读取并分析每个源文件。Erlang的`file`模块...

    ico图标生成器e语言源码

    ico图标生成器是一款工具,主要用于将图像转换为...通过研究这个ico图标生成器的源码,开发者可以深入理解图像处理、文件格式解析、Erlang编程实践以及模块化设计等多个方面,对提高编程技能和理解软件工程有显著帮助。

    各种程序语言的Hello_World程序

    - `printf`函数用于格式化输出文本。 - `return 0`表示程序成功结束。 #### C++ ```cpp #include int main() { std::cout !" ; return 0; } ``` **解析:** - C++提供了更高级的库支持。 - `std::cout`用于输出...

    dos命令大全详细说明

    - **格式化磁盘**:`FORMAT drive:/S`对驱动器drive进行格式化,并安装DOS系统文件。 - **查看磁盘信息**:`Fdisk`用于查看和管理分区,`DISKCOPY`用于复制整个磁盘内容。 5. **批处理** - **批处理文件**:使用...

    Golang常见的坑和编程模式.pdf

    在Golang中,使用time.Time对象的Format方法进行时间格式化时,需要严格按照指定的格式字符串进行,否则可能会得到不符合预期的结果。时间格式化字符串中的"2006"、"01"、"02"等代表特定的年、月、日格式,并且这些...

    FastStone Capture 9.3.rar

    它还支持多种输出格式,如JPEG、PNG、BMP、GIF、TIFF等,方便在不同的平台和设备上共享。同时,软件内置了快速上传到FTP服务器或电子邮件的功能,使得图片分享变得极其便捷。 然而,安装FastStone Capture 9.3时,...

Global site tag (gtag.js) - Google Analytics