输入和输出

输入和输出功能都被定义在io模块

输出功能非常常用,由于erlang项目没有可断点调试的IDE(或者说根本不需要),所以所有的调试操作都是由io输出 来调试的

io:get_line/1.

​ 参数:输入提示

​ 获取标准输入,回车结束,

io:get_chars/2.

​ 参数:输入提示,跳过字符数量

​ 获取输入字符,获取的字符不包含跳过数量的字符

io:read/1

​ 参数:输入提示

​ 从shell面板读取一个项元,项元必须是一个明确的值,而不是一个表达式

io:write/1

​ 打印输出一个项元

io:format/1

直接输出一段文本

io:format/2

​ 参数:格式化的字符串/二进制,解析列表,列表,列表

​ 格式化输出一段文本

​ 格式化的占位符(控制格式化的序列,简称:控制序列)以“~”开头,后面的称之为填充字符

​ 完美的控制序列型是为F.P.PadC,其中F为输出宽度(长度和格式,+10表示左对齐10位长度,-10表示右对齐10位长度,内容长度不足时使用Pad填充),P为输出精度,即截取原输出文本的长度,当P大于原文本昌都市,使用Pad填充,Pad是填充字符,只能是一个字符,默认空格,C是控制字符,如:40p~n

控制序列表:

符号 说明
~c 输出一个字符的ASCII码
~f 输出一个有6位小数点的浮点数
~e 输出一个以科学记数法表示的共6位的浮点数
~w 以标准语法从输出任何项元(也就是Term),常被用于输出Erlang数据类型
~p 类似~w,但是会在适当的地方换行和缩进,并尝试将列表作为字符串输出
W、P 类似w和p,但是限制结构深度为3
~B 输出一个十进制整数
~n 换行
~s 打印一个字符串,I/O列表或原子,打印时不带引号

~W深度示例

  1. > io:format("~W",[[z,h,c],3]).
  2. [z,h|...]ok
  3. > io:format("~W",[[z,h,c],2]).
  4. [z|...]ok
  5. > io:format("~W",[[z,h,c],1]).
  6. [...]ok
  7. > io:format("~W---~W",[[z,h,c],1,[a,b,c],2]).
  8. [...]---[a|...]ok
  1. > f(List).
  2. ok
  3. > List = [2,3,math:pi()].
  4. [2,3,3.141592653589793]
  5. > f(Sum).
  6. ok
  7. > Sum = lists:sum(List).
  8. 8.141592653589793
  9. > io:format("hello,world!~n",[]).
  10. hello,world!
  11. ok
  12. > io:format("the sum of ~w is ~w.~n",[[2,3,4],demo:sum([2,3,4])]).
  13. the sum of [2,3,4] is 9.
  14. ok
  15. > io:format("the sum of ~W is ~.2f.~n",[List,3,Sum]).
  16. the sum of [2,3|...] is 8.14.
  17. ok
  18. > io:format("~40p~n",[{apply,io,format,["the sum of ~W is ~.2f.~n",[[2,3,math:pi()],3,demo:sum([2,3,math:pi()])]]}]).
  19. {apply,io,format,
  20. ["the sum of ~W is ~.2f.~n",
  21. [[2,3,3.141592653589793],
  22. 3,8.141592653589793]]}
  23. ok
  24. > io:format("|~-4s|",[abc]). % |abc |ok
  25. > io:format("|~-10s|",[abc]). % |abc |ok
  26. > io:format("|~-10.0.+s|",[abc]). % |++++++++++|ok
  27. > io:format("|~-10.1.+s|",[abc]). % |a+++++++++|ok
  28. > io:format("|~-10.2.+s|",[abc]). % |ab++++++++|ok
  29. > io:format("|~-10.10.+s|",[abc]). % |abc+++++++|ok
  30. > io:format("|~4s|",[abc]). % | abc|ok
  31. > io:format("|~10s|",[abc]). % | abc|ok
  32. > io:format("|~10.0.+s|",[abc]). % |++++++++++|ok
  33. > io:format("|~10.1.+s|",[abc]). % |+++++++++a|ok
  34. > io:format("|~10.7.+s|",[abc]). % |+++abc++++|ok
  35. > io:format("|~10.10.+s|",[abc]). % |+++++++abc|ok

io:format/3

​ 参数:输出文件流(需要输出到的进程标识符,file:open(File,write)的返回值)/格式化的字符串/二进制,解析列表,列表,列表

​ 往输出文件流中输出(写出)数据

  1. FS = file:open(File, read|write...).
  2. io:format(FS, "~P~N", [Message]).
  3. file.close(FS).
  1. %%
  2. <<"爱我中华"/utf8>>
  3. % 或者
  4. unicode:characters_to_binary("爱我中华").
  5. > io:format("~ts",[<<"爱我中华"/utf8>>]).
  6. 爱我中华ok

%%todo

Erlang学习记录:输入和输出的更多相关文章

  1. python学习记录_中断正在执行的代码,执行剪切板中的代码,键盘快捷键,魔术命令,输入和输出变量,记录输入和输出变量_

    2018-03-28 00:56:39 中断正在执行的代码 无论是%run执行的脚本还是长时间运行的命令ctrl + cIn [1]: KeyboardInterrupt 执行剪切板中的代码 ctrl ...

  2. 从0开始的Python学习015输入与输出

    简介 在之前的编程中,我们的信息打印,数据的展示都是在控制台(命令行)直接输出的,信息都是一次性的没有办法复用和保存以便下次查看,今天我们将学习Python的输入输出,解决以上问题. 复习 得到输入用 ...

  3. C++学习42 输入和输出的概念

    我们经常用到的输入和输出,都是以终端为对象的,即从键盘输入数据,运行结果输出到显示器屏幕上.从操作系统的角度看,每一个与主机相连的输入输出设备都被看作一个文件.除了以终端为对象进行输入和输出外,还经常 ...

  4. perl学习笔记——输入与输出

    读取标准输入 用<STDIN>进行标准输入:chomp($line=<STDIN>); 如果读到文件尾,行输入操作符就会返回undef.便可利用这一性质跳出循环. while( ...

  5. Python学习--02输入和输出

    命令行输入 x = input("Please input x:") y = raw_input("Please input x:") 使用input和raw_ ...

  6. perl学习(5) 输入和输出

    1.1. 从标准输入设备输入 <STDIN> 行输入操作在到达文件的结尾时将返回undef,在while循环的条件中不能使用chomp: while (defined($line = &l ...

  7. python语言学习5——输入和输出

    输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字. 注意点: 字符串用的是单引号 碰到逗号输出时就会输出一个空格 输入 python提供了一个input(),可以让用户输入一个字 ...

  8. Python学习笔记-输入与输出

    一.Python提供了raw_input()和input()两个函数实现数据输入. 1.raw_input() 接收字符串类型的输入数据. str1=raw_input("请输入字符串:&q ...

  9. Python学习--02输入和输出、运算符

    命令行输入 x = input("Please input x:") y = raw_input("Please input x:") 使用input和raw_ ...

随机推荐

  1. 使用VBA达到vlookup效果

    Function Desc(ProdNum) Desc = Application.WorksheetFunction.VLookup(ProdNum, Range("myTable&quo ...

  2. 找到最大或者最小的N个元素

    heapq模块中的两个函数nlargest()和nsmallest() import heapq nums = [1,5,6,458,6,787,5,45,6] print(heapq.nlarges ...

  3. Zabbix-1.8.14 安装

    CentOS 6.9Apache 2.2PHP 5.3.3MySQL 5.1.73 1.下载安装zabbix软件源 在http://repo.zabbix.com/zabbix/1.8/rhel/6/ ...

  4. BCZM : 1.9

    有n个学生参加见面会,分别对m个研究组中的若干个感兴趣,为了满足所有学生的要求,每个学生都能参加自己感兴趣的见面会,如果每个见面会的时间为t,如何安排才能使得所有见面会的总时间最短? 分析: 先建立模 ...

  5. 【SGU194】Reactor Cooling

    题目大意 给定一个无源无汇的网络,边的容量有上下界限制,试构造一个合理的流量. 题目分析 求无源汇上下界的可行流模板题. ①增加一个附加源和汇\(S,T\). ②把每个节点的\(\sum b_{u,i ...

  6. Jmeter-【JSON Extractor】-响应结果中二级key取值

    一.请求返回样式 二.取chapter的值 三.查看结果

  7. 理解TCP/IP,SOCKET,HTTP,FTP,RMI,RPC,webservic

    TCP/IP:网络宽带,传输数据的基础协议,所有得数据要在网络上传输都是基于TCP/IP协议(或UDP),才能送达到指定的目的地(IP,服务器硬件地址). SOCKET:SOCKET只是面对编程人员的 ...

  8. thinlphp配置加载

    在ThinkPHP中,一般来说应用的配置文件是自动加载的,加载的顺序是: 惯例配置->应用配置->模式配置->调试配置->状态配置->模块配置->扩展配置-> ...

  9. vue-cli3+ant-design-vue+typescript 注意事项

    项目参考vue-cli3-web-init ant-design配置部分 1. 实现ant-disign-vue的按需加载方案 (1)引入所有的组件,然后加载到vue上面 components-ant ...

  10. Struts功能详解——ValidatorForm

    ActionForm和ValidatorForm区别:       一个Form继承了ValidatorForm 就不用写具体的验证,但是需要提供:validation-rules.xml 和 val ...