Eclipse控制台仅在程序完成后才写入输出

Ral*_*zky 2 eclipse console d

我有以下D程序:

void main( string[] args )
{
    import core.thread, std.stdio;

    for ( int i = 10; i > 0; --i )
    {
        writeln( i );
        Thread.sleep(dur!"seconds"(1) );
    }
    writeln("Bang!");
}
Run Code Online (Sandbox Code Playgroud)

它从10减少到1然后输出"Bang!".在每个输出之间,程序等待一秒的持续时间.当我在Eclipse(Eclipse平台,版本:3.8.1,构建id:debbuild)中使用DDT插件(版本:0.8.1.v201309231)运行此程序时,控制台输出正如预期的那样,但它只会在程序已经运行完毕.

当我从控制台启动相同的程序时,程序的行为应该如此.

我该如何解决这个问题?

Ada*_*ppe 7

在睡眠线之前放入stdout.flush().stdout是缓冲的,因此flush确保它实际上可以到达设备而不是在缓冲区中等待.