[Haskell-cafe] Re: Re: Read a single char

Hans van Thiel hthiel.char at zonnet.nl
Wed Oct 25 12:57:38 EDT 2006


On Tue, Oct 24, 2006 at 06:14:14PM +0200, Hans van Thiel wrote:
        > I have a similar question. When I use getChar with Hugs the
        newline
        > (caused by pressing 'Enter')  seems to be carried over into
        the next
        > call of main, where it is treated as a single input
        character. 
        > The workaround is getLine and head, but it would be nice to
        drop the
        > newline right away. I suppose the solution offered here: 
        
        >>that is the correct behavior, input is never discarded, it is
        just >>saved
        >>up until you press enter for the first time. if you type
        >>foo<enter>,
        >>your next four getChars will get 'f' 'o' 'o' and '\n'. it is
        not >>haskell
        >>that is treating enter as specially, it is your terminal,
        getChar >>just returns exactly what was passed to it.
        
        Yes, but the problem is with two subsequent runs of main. I'd
        have thought the buffer would flush automatically and the second
        run would start with an empty buffer. Now I enter 'b', then
        press 'Enter' and it works as expected. Then I 'main' again, and
        it terminates right away with a blank line. If I enter 'a', 'b'
        and then Enter, the second run takes the second character.
        If I'm not doing anything wrong (always a possibility :-), then
        it seems more like a (small) bug in Hugs, as Neil suggested. 
        I'll have to check what chgi does.
        
                John
        -- 
        John Meacham - ⑆repetae.net⑆john⑈
        
        Regards,
        
        Hans
        



More information about the Haskell-Cafe mailing list