我是Erlang的新手。
我的问题是,我似乎无法弄清楚如何创建将继续提示用户的功能,直到他们输入某种"退出"按钮。
我在下面创建了一个非常简单的程序,如果用户键入" 4"我认为会退出,但我认为错了:
reprompt() ->
{ok, X} = io:fread("Prompt>", "~s"),
case X of
4 -> io:format("exit");
_ -> reprompt()
end.
我尝试过其他变体,但大多数都遵循相同或相似的模式。
有什么建议吗?
答案 0 :(得分:1)
io:fread/2
返回一个列表。使用格式"~s"
,它将返回包含一个字符串的列表。如果您想在X
中输入一个号码,可以执行以下操作:
{ok, [X]} = io:fread("Prompt>", "~d"),
请注意,如果用户输入的数字不是数字,则会崩溃。您应该使用case
表达式并为{ok, [X]}
和{error, Reason}
添加子句。