首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fflush和while循环

fflush和while循环
EN

Stack Overflow用户
提问于 2010-10-01 10:14:47
回答 4查看 794关注 0票数 1

我一直在尝试使用fflush来制作进度条。为了测试fflush,我编写了下面的小代码。

当我取消对“sleep(1)”的注释时,它可以正常工作,但是如果它仍然被注释掉,它会以一种意想不到的方式工作。它打印第一个破折号,等待然后打印所有剩余的9个破折号,然后退出。

我不明白这有什么不同。

代码语言:javascript
复制
int main()
{
    int f,j;
    j =0;
    for(f=0;f<10;f++)
     {
        printf("-");
        fflush(stdout);
        while(j++<1000000000);
        //sleep(1);
     }
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-01 11:40:11

如下所示更改for循环:

发自:

代码语言:javascript
复制
for(f=0;f<10;f++)

至:

代码语言:javascript
复制
for(f=0, j=0; f<10; f++, j=0)
票数 1
EN

Stack Overflow用户

发布于 2010-10-01 10:26:50

在while循环之后,您需要将j设置回零。在下一次迭代中,它将跳过while循环。

票数 2
EN

Stack Overflow用户

发布于 2010-10-01 10:26:52

这是因为您不会在每次外部循环迭代时将内循环计数器j重置为零,即只在第一次循环时执行while()。与fflush()无关:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3836102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档