如何将 N 个十进制数作为输入并打印数字,正在将故障转储写入:erl_crash.dump...done init 终止于 do_boot()

Posted

技术标签:

【中文标题】如何将 N 个十进制数作为输入并打印数字,正在将故障转储写入:erl_crash.dump...done init 终止于 do_boot()【英文标题】:How to take N decimal number as input and print the numbers ,Crash dump is being written to: erl_crash.dump...done init terminating in do_boot () 【发布时间】:2016-04-12 23:43:33 【问题描述】:

预期输入: 4 20.0000 5.0000 0.5000 -0.5000 预期输出: 20.0000 5.0000 0.5000 -0.5000 以下是我的代码,但它引发了错误: 崩溃转储正在写入:erl_crash.dump...done init 终止于 do_boot()

kilo(0)->
    ok;
kilo(N) when N>0->
    ok,[M]=io:fread("", "~f"),
    io:format("~f~n",[M]),
    kilo(N-1).
main()->
    ok,[M]=io:fread("","~d"),
    kilo(M).

【问题讨论】:

该代码对我有用。你如何开始它?您是否收到任何其他错误消息? 【参考方案1】:

io:fread("", "~f") 在输入不是浮点数时失败并出现错误。你可以这样改变它:

kilo(N) when N>0->
    case io:fread("", "~f") of
        ok,[M] -> io:format("~f~n",[M]);
        _ -> ok
    end,
    kilo(N-1).

【讨论】:

以上是关于如何将 N 个十进制数作为输入并打印数字,正在将故障转储写入:erl_crash.dump...done init 终止于 do_boot()的主要内容,如果未能解决你的问题,请参考以下文章

如何将 int 转换为十六进制数并将其打印为 c 中的 3 位数字? [复制]

将整数向量打印为十进制数

12:打印 1 到最大的 n 位数

如何计算大 n 的 2^n?

剑指offer:打印从1到最大的n位数

十六进制数对于长long int来说太大了?