向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]