how stdin stream works?

Flade consolemaster0 at gmail.com
Sun Aug 23 09:48:01 UTC 2020


On Thursday, 20 August 2020 at 19:13:31 UTC, Ali Çehreli wrote:
> On 8/19/20 11:46 AM, Flade wrote:
>
>>> [...]
>> 
>> Thanks Steve! I will get the input a string then as you said 
>> and then I'll try to convert it! Thanks a lot, have a nice day!
>
> In some cases clearerr() and readln() may be what is needed:
>
> import std.stdio;
>
> void main() {
>   int x;
>
>   bool accepted = false;
>
>   while (!accepted) {
>     try {
>       write("x: ");
>       readf(" %d", x);
>       accepted = true;
>
>     } catch (Exception msg) {
>
>       writeln("Please give a right coordinate");
>       stdin.clearerr();
>       stdin.readln();
>     }
>   }
>
>   writeln("x is ", x);
> }
>
> Note that I used " %d" because "%d/n" would not clean when 
> nothing was input by just hitting the Enter key. A space 
> character in the format string means "read and ignore any 
> whitespace at this point" and I like it. :)
>
> Also note I changed the name of the variable as 'accepted'. :)
>
> Ali

Wait! Oh man I just checked your name!!!! I'm currently reading 
your book and I wanted to say that you did an EXCELLENT work and 
I love it! Thanks a lot! You are great!!!


More information about the Digitalmars-d-learn mailing list