On Saturday, 26 December 2015 at 20:38:52 UTC, tcak wrote:
On Saturday, 26 December 2015 at 20:19:08 UTC, Adam D. Ruppe wrote:
On Saturday, 26 December 2015 at 20:11:27 UTC, karthikeyan wrote:
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?

Oh, I'm sorry, it isn't buffering, it is readfing into a string here which is weird. Maybe try readln instead of readf.

As far as I remember, in C, if I was to be putting "\n" in scanf after %s, that double entering was happening. I guess that's the same problem. Trying same code without \n in readf can fix it I guess.

import std.stdio;

int main(string[] argv)
{
 string nm;
 stdin.readf("%s",&nm);
 writeln("nm:",nm);
 stdout.flush();
 stdin.readf("%s",&nm);
 writeln("nm:",nm);
 stdout.flush();

 return 0;
}

ok, I tried above, adding both the stdout.flush() and removing the \n from the format. It didn't write to output even after a couple of enter's. When I entered ctrl-Z, it output below.

============ output running from command prompt
123
456

^Z
nm:123
456


nm:123
456


Reply via email to