putStr来自GHC,Mac OS X的编译二进制文件

use*_*010 4 io executable haskell ghc

有了这个文件:

main = do
  putStr "Input: "
  s <- getLine
  putStr s
Run Code Online (Sandbox Code Playgroud)

它在GHCi中执行我想要的操作,即提示然后允许输入与提示在同一行.如果我编译它并在终端中运行可执行文件,我将在输入之后才会看到提示.关于新线的一些事情.我使用的是Mac OS 10.8.5,GHC 7.4.2.

是否需要切换终端设置或GHC选项以从可执行文件中获取我想要的行为?

bhe*_*ilr 7

您需要使用hSetBufferingSystem.IO

main = do
    hSetBuffering stdout NoBuffering
    putStr "Input: "
    s <- getLine
    putStr s
Run Code Online (Sandbox Code Playgroud)