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