stdout - autoflushing

H. S. Teoh hsteoh at quickfur.ath.cx
Tue Dec 3 09:47:59 PST 2013


On Tue, Dec 03, 2013 at 06:12:20PM +0100, Benji wrote:
> Hello,
> in order to have correctly displayed output (before reading
> something from stdin),
> I must call stdout.flush().
> Sometimes, it's really annoying, especially when it is necessarry to
> call it 10 times.
> 
> For example:
> write("Enter some string: ");
> stdout.flush();
> string a = readln();
> write("And again please: ");
> stdout.flush();
> string b = readln();
> ...
> 
> Is there any way to prevent this?

What about:

	void prompt(A...)(string fmt, A args)
	{
		writef(fmt, args);
		stdout.flush();
		return readln();
	}

	auto a = prompt("Enter your name: ");
	auto b = prompt("Enter your age: ").to!int;
	... // etc.


T

-- 
If you think you are too small to make a difference, try sleeping in a closed room with a mosquito. -- Jan van Steenbergen


More information about the Digitalmars-d-learn mailing list