使用此文件:

main = do
  putStr "Input: "
  s <- getLine
  putStr s


它在GHCi中实现了我想要的功能,即放置提示,然后在与提示相同的行上允许输入。如果我编译它并在终端中运行可执行文件,则直到输入完之后我才会看到提示。关于新行的内容。我正在使用Mac OS 10.8.5,GHC 7.4.2。

是否需要切换终端设置或GHC选项才能从可执行文件中获得所需的行为?

最佳答案

您需要使用hSetBuffering中的System.IO

main = do
    hSetBuffering stdout NoBuffering
    putStr "Input: "
    s <- getLine
    putStr s

09-06 17:12