![](/img/trans.png)
[英]Any other way to print on the screen instead of printf() and fprintf() in C?
[英]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++)
^---
由于j
从0
开始,所以它永远不能小于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.