
21 Oct
2009
21 Oct
'09
10:25 p.m.
Am Donnerstag 22 Oktober 2009 04:15:56 schrieb michael rice:
Busy night. I wanted the question and response to be on the same line (see below), so I used putStr instead of putStrLn, but Haskell jumps the gun and goes to the second line to get the response before the question ever gets printed. Is this an example of needing strictness? How would I do that, or something else, to get the result I want?
putStrLn "Some yes/no question (y/n)?" ans <- getLine
Michael
It's a buffering issue. For compiled code, stdout is by default set to line buffering (it's different for interpreted code, at least on linux). import System.IO do hSetBuffering stdout NoBuffering putStr "Question" ans <- getLine should do what you want.