***例外:haskell中的用户错误(Prelude.readIO:无解析)

时间:2017-09-02 14:05:08

标签: haskell exception io

我试图编写一个程序,它一直循环等待用户输入但由于某种原因它不会循环。 我的节目是:

const limits = { fileSize: 50 * 1024 * 1024 /* 50MB */ };

multer = multer({ storage, limits });

但实际上我得到了这个错误:

  

***异常:用户错误(Prelude.readIO:无解析)

如果我删除了最后一个主要调用程序将运行。 有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:2)

当您使用NaN时,您的信息流只会占用一个字符。但是,如果您已输入 A Enter ,则换行符getChar仍在您的'\n'中。 stdin无法解析为'\n',因此您最终会遇到该错误。

如果您之后致电Int,则可以删除该换行符:

getLine

或者你写自己的帮手:

       ch <- getChar
       putStrLn (show (charAt word ch))
       _ <- getLine