fread(Prompt, Format) -> Result
fread(IoDevice, Prompt, Format) -> Result
IoDevice = device()
Prompt = prompt()
Format = format()
Result =
{ok, Terms :: [term()]} |
{error, {fread, FreadError :: io_lib:fread_error()}} |
server_no_data()
从标准输入 ( IoDevice
) 读取字符,并用 Prompt
进行提示。根据 Format
解释字符。 Format
包含指导输入解释的控制序列。
Format
可以包含以下内容:
-
空白字符(空格、制表符和换行符)导致输入被读取到下一个非空白字符。
-
必须与下一个输入字符匹配的普通字符。
-
控制序列,其通用格式为
~*FMC
,其中:-
字符
*
是可选的返回抑制字符。它提供了一种指定要省略的字段的方法。 -
F
是输入字段的field width
。 -
M
是一个可选的翻译修饰符(其中t
是唯一受支持的,即 Unicode 翻译)。 -
C
确定控制序列的类型。
除非另有说明,否则所有控制序列都会忽略前导空格。输入字段的宽度不能超过一行。
可用的控制序列:
~
-
输入中应包含单个
~
。 d
-
应为十进制整数。
u
-
需要以 2-36 为基数的无符号整数。字段宽度参数用于指定基数。不会跳过前导空白字符。
-
-
需要一个可选的符号字符。符号字符
-
给出返回值-1
。符号字符+
或没有符号给出1
。字段宽度参数被忽略。不会跳过前导空白字符。 #
-
需要以 2-36 为基数且带有 Erlang-style 基数前缀的整数(例如
"16#ffff"
)。 f
-
预计为浮点数。它必须遵循 Erlang 浮点数语法。
s
-
读取一串非空白字符。如果指定了字段宽度,则会读取此数量的字符,并删除所有尾随空白字符。返回一个 Erlang 字符串(字符列表)。
如果 Unicode 转换有效 (
~ts
),则接受 > 255 个字符,否则不接受。使用翻译修饰符,返回的列表因此也可以包含> 255的整数:1> io:fread("Prompt> ","~s"). Prompt> <Characters beyond latin1 range not printable in this medium> {error,{fread,string}} 2> io:fread("Prompt> ","~ts"). Prompt> <Characters beyond latin1 range not printable in this medium> {ok,[[1091,1085,1080,1094,1086,1076,1077]]}
a
-
与
s
类似,但结果字符串被转换为原子。 c
-
读取等于字段宽度的字符数(默认为 1)并作为 Erlang 字符串返回。但是,前导和尾随空白字符不会像
s
那样被省略。返回所有字符。Unicode 翻译修饰符的工作方式与
s
相同:1> io:fread("Prompt> ","~c"). Prompt> <Character beyond latin1 range not printable in this medium> {error,{fread,string}} 2> io:fread("Prompt> ","~tc"). Prompt> <Character beyond latin1 range not printable in this medium> {ok,[[1091]]}
l
-
返回截至该点已扫描的字符数,包括空白字符。
该函数返回:
{ok, Terms}
-
读取成功,
Terms
是成功匹配和读取的项目列表。 eof
-
遇到文件结尾。
{error, FreadError}
-
读取失败,
FreadError
给出有关错误的提示。 {error, ErrorDescription}
-
读取操作失败,参数
ErrorDescription
给出有关错误的提示。
-
例子:
20> io:fread('enter>', "~f~f~f").
enter>1.9 35.5e3 15.0
{ok,[1.9,3.55e4,15.0]}
21> io:fread('enter>', "~10f~d").
enter> 5.67899
{ok,[5.678,99]}
22> io:fread('enter>', ":~10s:~10c:").
enter>: alan : joe :
{ok, ["alan", " joe "]}
相关用法
- erlang fread(Format, String)用法及代码示例
- erlang from_list用法及代码示例
- erlang from_keys(Keys, Value)用法及代码示例
- erlang from_list(List)用法及代码示例
- erlang from_sets(ListOfSets)用法及代码示例
- erlang from_term(Term)用法及代码示例
- erlang float用法及代码示例
- erlang file_read用法及代码示例
- erlang file_size用法及代码示例
- erlang find用法及代码示例
- erlang fun2ms(LiteralFun)用法及代码示例
- erlang float(Number)用法及代码示例
- erlang float_to_binary(Float, Options)用法及代码示例
- erlang float_to_list(Float, Options)用法及代码示例
- erlang floor(Number)用法及代码示例
- erlang fun_to_list(Fun)用法及代码示例
- erlang filter(Fun, Q1 :: queue(Item))用法及代码示例
- erlang filtermap(Fun, Q1)用法及代码示例
- erlang fold(Fun, Acc0, Q :: queue(Item))用法及代码示例
- erlang fetch(Key, Orddict)用法及代码示例
- erlang fetch_keys(Orddict)用法及代码示例
- erlang filter(Pred, Orddict1)用法及代码示例
- erlang find(Key, Orddict)用法及代码示例
- erlang fold(Fun, Acc0, Orddict)用法及代码示例
- erlang foldl(Fun, Acc0, Archive)用法及代码示例
注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 fread(Prompt, Format) -> Result。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。