digitalmars.D.learn - User input; quick question.
import std.stdio; 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.
Apr 29 2017
On Saturday, 29 April 2017 at 21:09:13 UTC, fred wrote:import std.stdio; 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);
Apr 29 2017
On Saturday, 29 April 2017 at 21:18:27 UTC, cym13 wrote:On Saturday, 29 April 2017 at 21:09:13 UTC, fred wrote:Thank you, again.import std.stdio; 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);
Apr 29 2017