
How should I modify the function below so that characters are printed out as they arrive? Thanks. Tom printchar :: Handle -> IO () printchar handle = do c <- hGetChar handle putChar c

How should I modify the function below so that characters are printed out as they arrive?
printchar :: Handle -> IO () printchar handle = do c <- hGetChar handle putChar c
Try using hSetBuffering handle NoBuffering hSetBuffering stdout NoBuffering from the IO library, before you call printchar. If the input handle is attached to a terminal, you may also need to adjust the terminal emulation into `cbreak' mode, e.g. with System.system "stty cbreak" Don't forget to reset the terminal afterwards! Regards, Malcolm
participants (2)
-
Malcolm Wallace
-
Tom Bevan