Badarg исключение из формата IO: - PullRequest
0 голосов
/ 04 декабря 2018

Я хочу написать функцию, которая может принимать последовательность чисел, разделенных \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 

Вот мой код:

-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).

1 Ответ

0 голосов
/ 04 декабря 2018

Второй аргумент io:format - это список значений.Даже если вы используете только одну управляющую последовательность, используя значение (в данном случае ~w), вам нужно заключить значение в список:

    io:format("~w~n", [Data]).
...