我想编写一个函数,可以将一系列数字分开\n
并在列表中打印.但是我无法对badarg错误做出任何进展.我该如何处理此代码?想法是将数字传递给这个程序,但是当我传递多个数字时,我得到了这个错误:
exception error: bad argument
in function io:format/3
called as io:format(<0.62.0>,"~w~n",[3,2,1])
in call from erl_eval:local_func/6 (erl_eval.erl, line 564)
in call from escript:interpret/4 (escript.erl, line 788)
in call from escript:start/1 (escript.erl, line 277)
in call from init:start_em/1
in call from init:do_boot/3
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
-module(prog).
-export([read_stdin/1]).
-export([main/0]).
read_stdin(Acc) ->
case io:fread(standard_io, '', "~d") of
eof -> Acc;
{ok, Line} -> read_stdin(Line ++ Acc)
end.
main() ->
Data = read_stdin([]),
io:format("~w~n", Data).
Run Code Online (Sandbox Code Playgroud)
第二个参数io:format是值列表.即使您只使用一个控制序列(~w在本例中),您需要将值包装在列表中:
io:format("~w~n", [Data]).
Run Code Online (Sandbox Code Playgroud)