On Aug 18, 2006, at 8:09 AM, Haihua Lin wrote:
Hi all,
How to read one char from stdin and return immediately?
I mean there is no need to wait the user input a return.
For example:
Print "y/n: "
Users input y, return immediately, no return need.
I have tried code as below, but it didn't work for me.
import IO
main = do
hSetBuffering stdout NoBuffering
putStr "Y/N: "
c <- getChar
putStr ("Your input is " ++ show c++".\n")
Thanks very much.
I do it this way; it should keep your buffering state consistent even
if exceptions occur.
bracket (hGetBuffering stdin) (hSetBuffering stdin) $ \_ -> do
hSetBuffering stdin NoBuffering
c <- hGetChar stdin
return c
Best regards,
Haihua Lin
Rob Dockins
Speak softly and drive a Sherman tank.
Laugh hard; it's a long way to the bank.
-- TMBG
_______________________________________________
Haskell mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell