我的程序去像函數getline不會停止
main :: IO String
main = do
putStrLn "input a"
a <- getChar
putStrLn "input b"
b <- getLine
putStrLn "input c"
c <- getChar
return a:c:b
行爲:我得到「輸入」印刷和程序等待我輸入一個字符,然後按返回。從那裏,它滾動通過getLine沒有讓我輸入的東西。我怎樣才能讓它做到我想要的呢?
P.S .:這個代碼可能有更多的問題,但讓我們把重點放在我現在的問題上。
這是您的實際代碼之前尾隨
\n
與另一getLine
清潔鍵盤緩衝區?你有沒有試過運行它?你的代碼片段不適合我,因爲你缺少'a:c:b'的括號。當我添加括號時,其行爲如預期。 –我想你可能應該禁用緩衝(使用[hSetBuffering](https://hackage.haskell.org/package/base-4.8.2.0/docs/System-IO)。html#v:hSetBuffering)) - 這應該解決這些問題 – Carsten