Erlang读stdin写stdout

GTD*_*Dev 13 erlang stdin stdout getline

我正试图通过面试街学习二郎.我现在只是学习这门语言所以我什么都不知道.我想知道如何从stdin读取并写入stdout.

我想写一个写"Hello World!"的简单程序.stdin收到的次数.

所以用stdin输入:

6
Run Code Online (Sandbox Code Playgroud)

写到标准输出:

Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Run Code Online (Sandbox Code Playgroud)

理想情况下,我会一次读取stdin一行(即使在这种情况下它只是一位数)所以我想我将使用get_line.这就是我现在所知道的.

谢谢

谢谢

tof*_*der 23

这是另一种解决方案,可能更具功能性.

#!/usr/bin/env escript

main(_) ->
    %% Directly reads the number of hellos as a decimal
    {ok, [X]} = io:fread("How many Hellos?> ", "~d"),
    %% Write X hellos
    hello(X).

%% Do nothing when there is no hello to write
hello(N) when N =< 0 -> ok;
%% Else, write a 'Hello World!', and then write (n-1) hellos
hello(N) ->
   io:fwrite("Hello World!~n"),
   hello(N - 1).
Run Code Online (Sandbox Code Playgroud)