basic interactive readf from stdin

karthikeyan via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Dec 26 12:11:27 PST 2015


On Saturday, 26 December 2015 at 19:52:15 UTC, Adam D. Ruppe 
wrote:
> On Saturday, 26 December 2015 at 19:40:59 UTC, Jay Norwood 
> wrote:
>> Simple VS console app in D.
>
> If you are running inside visual studio, you need to be aware 
> that output will be block buffered, not line buffered, because 
> VS pipes the output making the program think it is talking to 
> another program instead of to an interactive console (well, 
> because it is!)
>
> Add a stdout.flush(); after writing to force it to show 
> immediately. I really think the read functions ought to flush 
> output too because this is such a FAQ. (indeed, my terminal.d 
> does flush output when you request input)

I experience the same as the OP on Linux Mint 15 with dmd2.069 
and 64 bit machine.  I have to press enter twice to get the 
output. I read http://ddili.org/ders/d.en/input.html and inserted 
a space before %s but still no use. Am I missing something here 
with the latest version?

Code

import std.stdio;

int main(string[] argv)
{
   string nm;
   readf(" %s\n",&nm);
   writeln("nm:",nm);
   // readf(" %s\n",&nm);
   // writeln("nm:",nm);
   return 0;
}


Output

56
2
nm:56


More information about the Digitalmars-d-learn mailing list