繁体   English   中英

C-循环内的fprintf和printf不会打印到屏幕

[英]C - fprintf and printf inside loops don t print to screen

我刚刚发现函数fprintf可用于将某些内容打印到屏幕上。

我在下面有这个最小值,但是它不会在屏幕上输出任何内容。 为什么?

#include <stdio.h>

int main(void)
{
    int i,j,k;

    for(i=0;i<4;i++)
    {
        for(j=0;j<0;j++)
        {
            for(k=0;k<3;k++)
            {
                printf("test\n");
                fprintf(stderr, "test\n");

            }
        }       
    }

    return 0;
}

我正在运行ubuntu 14.04并按如下所示编译此代码:gcc main.c -o main

为什么要打印任何内容? 您的一个循环具有不可能的情况:

    for(j=0;j<0;j++)
              ^---

由于j0开始,所以它永远不能小于0 ,因此循环无需执行主体就立即退出。

您的第二个循环是错误的。 j初始化为零,条件为j<0 使用for循环,在第一次迭代之前评估条件。

我在下面有这个最小值,但是它不会在屏幕上输出任何内容。 为什么?

不会因为控制永远不会到达printf()语句。 因为您的中间for loop具有始终失败的测试条件,这甚至阻止了内部for loop执行。

for(j=0;j<0;j++)
.
.

条件j<0当j与初始化0将始终计算为false 修复中间的for loop解决您的问题。

您可以使用gdb调试程序。 了解一些与gdb一起使用的命令,您可以自己看到问题出在哪里。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM