July 27, 2010 D and cygwin io. | ||||
---|---|---|---|---|
| ||||
Hello. Here's a short program that works in a dos window: import std.stdio; void main() { writef( "What is your name?"); string name = readln(); writefln( "Hello " ~ name); } The program prints a prompt without a newline and the user enters a name and a greeting is printed. The same program does not seem to work when at a cygwin prompt. The program seems to pause. It is actually waiting for input. So, if I type in a name and hit return, the prompt and the greeting appears as expected but on one line. I can change writef to writefln and it will work on the cygwin prompt and on the dos prompt, but now a newline will be added after the prompt message. I'm wondering how can I fix this? I am using bash shell on cygwin. thanks. |
July 27, 2010 Re: D and cygwin io. | ||||
---|---|---|---|---|
| ||||
Posted in reply to dcoder | dcoder wrote:
> Hello. Here's a short program that works in a dos window:
>
> import std.stdio;
>
> void main() {
>
> writef( "What is your name?");
>
> string name = readln();
> writefln( "Hello " ~ name);
> }
>
> The program prints a prompt without a newline and the user enters a name and a greeting is printed.
>
> The same program does not seem to work when at a cygwin prompt. The
> program
> seems to pause. It is actually waiting for input. So, if I type in a
> name and hit return, the prompt and the greeting appears as expected but
> on one line.
>
> I can change writef to writefln and it will work on the cygwin prompt and on the dos prompt, but now a newline will be added after the prompt message.
>
> I'm wondering how can I fix this? I am using bash shell on cygwin.
>
>
> thanks.
try flushing the output after the write: stdout.flush();
|
Copyright © 1999-2021 by the D Language Foundation