加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为什么C会在一段时间的循环中被卡住?

发布时间:2020-12-16 07:51:21 所属栏目:百科 来源:网络整理
导读:当我编译并运行这个代码(它是一个更大的程序的一部分)时,Linux将在while循环中途中断,然后停止工作. 下面的代码打印时间:0,然后挂起,在我暂停此过程之前不执行任何操作.为什么会打印时间:0但不是以下行的理智检查? while (i 5){ printf("time: %dn",elap
当我编译并运行这个代码(它是一个更大的程序的一部分)时,Linux将在while循环中途中断,然后停止工作.

下面的代码打印时间:0,然后挂起,在我暂停此过程之前不执行任何操作.为什么会打印时间:0但不是以下行的理智检查?

while (i < 5)
{
    printf("time: %dn",elapsedTime);
    printf("sanity check");
    foo();
    i++;
}

解决方法

输出通常是缓冲的,只能在刷新或换行之后写入.在
printf("sanity check");

没有换行符,所以如果你在这个循环后运行,你不会看到它.
替换它

printf("sanity checkn");

要么

printf("sanity check");
fflush(stdout);

你会看到它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读