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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。