本帖最后由 BiliNano 于 2012-05-27 16:13:12 编辑

解决方案 »

  1.   

    我想知道你单独执行那个程序,即CMD窗口而不是被C#调用的情况下,能否实时输出?
      

  2.   

    求解惑理论上是没什么问题了,用别人编的实时显示的程序运行我的xxx。exe也是不能实时输出,那肯定就是我的程序有问题,但是在CMD模式下运行的时候确实是实时输出的,C#一外部调用就不能了凭什么
      

  3.   

    你要是有心,提供那个程序的下载,然后我这里外部调用看看是怎么回事,因C++配置编译环境不方便,即便你给了C++的源码,里面调用的各种lib我都缺失,还是无法编译,C#只要有源码肯定可以编译,两者区别太大了,因此还是给可执行程序更好。
      

  4.   

    http://115.com/file/anpbhok5#ping.rar
    这是地址,你试试
      

  5.   

    看到问题了,我有点忙,打算用.NET写一个类似的程序出来比较下。
    初步猜测是缓冲区没有刷新造成的,如何及时刷新缓冲区是研究的重点。(如果不重定向输出,就不存在缓冲区问题)。
      

  6.   

    经测试,果然是缓存问题,你调用printf函数的时候,它将结果缓存了,而不是直接输出,由于控制台无缓存,重定向则有,因此控制台上直接显示了,看不出差异。
    修改方法是:在每次printf函数后面添加一行cout<< flush;