Linux中国论坛's Archiver

3rd0mit 发表于 2008-7-19 15:17

向C++的高人请教一个关于io流的问题

由于工作原因,我需要编写一个运行时间较长的程序。我的编译环境是debian etch下的gcc。
因为运行时间较长,我希望能作一个看到运行进度的子程序,其源码是:
fun(i)
{
cout<<i<<'/'<<n<<'\b'<<'\b'<<'\b';       
}
运行时,命令行中可以显示:i/n。 即我的计算完成的比率。
我用一个循环程序来测试它,其结构为:
int x,j;
j=0;
do
{
    x=j/100;               
    fun(x);       
}while(j<某数);
此时可以正常的显示完成率,但是每个循环都要调用,占用了很多资源。我将其改为:
int x,j,j0;
j=0;
j0=0;
do
{           
    x=j/100;               
    if(j>j0)
    {
        fun(x);
        j0=j;
    }
}while(j<某数);
这时在命令行中就什么也显示不出来了,光标一直保持在行首。
若程序改为:
int x,j,j0,y;
j=0;
j0=0;
do
{           
    x=j/100;               
    if(j>j0)
    {
        fun(x);
        if(j==100) cin>>y;
        j0=j;
    }
}while(j<某数);
这样一开始也不能显示完成率,但是当j==100时程序暂停,就能显示i/n了。
请问诸位高手这是为什么呢?
谢谢!

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.