Using getchar

Rory McGuire rjmcguire at gmail.com
Fri Sep 10 05:13:23 PDT 2010


Its not skipping its looping on "a\r\n" if you're on windows.

Linux it does the same but only "a\n".

Not sure how you'd make it so that you don't have to wait for the 
return press. Probably has something to do with console settings,
which are probably platform dependent.

-Rory


Andrej Mitrovic wrote:

> I have some D1 code that I'm transfering to D2, and it's using 
getchar. I
> think I need to flush the buffer or something because the loop tends 
to
> skip:
> 
> import std.c.stdio;
> import std.stdio;
> 
> void main()
> {
>     char k;
> 
>     for(int i = 0; i < 10; i++)
>     {
>         writef("Press key #%d:\t\n", i);
>         k = cast(char)getchar();
>     }
> }
> 
> E.g.:
> Press key #0:
> a
> Press key #1:
> Press key #2:
> b
> Press key #3:
> Press key #4:
> c
> Press key #5:
> Press key #6:
> 
> I guess I could use scanf() instead.. or maybe something more D-ish
> perhaps? :)
> 
> Someone on the NGs started creating some user-friendly input 
functions,
> something like getInput!char(variable), or similar. But I can't find 
the
> topic, anyone know the link perhaps? It was fairly recent that 
someone
> posted it.



More information about the Digitalmars-d-learn mailing list