I am somewhat new to D, and I am trying to receive user input, like this, with a prompt:
string str;
writeln("Enter a string: ");
str = readln;
writeln(str);
However, the prompt appears after I enter the input; any reason why?
I've trawled the internet for a good hour, but I can't seem to find an answer.
Your code is correct, it's your terminal or whatever you use to see your program's output that doesn't flush stdout. You can force it though:
string str;
writeln("Enter a string: ");
stdout.flush;
str = readln;
write(str);