#include<stdio.h>
#include<conio.h>
void main()
{
static int i=5;
clrscr();
if(--i)
{
printf("%d",i);
main();
}
getch();
}
当我运行此代码时,它没有给出任何输出,当我删除getch()然后在我切换到输出屏幕后运行然后它显示输出。为什么呢?
我正在使用Turbo C ++。
答案 0 :(得分:0)
printf
函数在内部缓冲输出,直到
\n
)stdout
已使用fflush()
你没有做2或3中的任何一个,缓冲区肯定大于5个整数。
你可能想要
printf("%d\n",i);
如果您希望在没有新行的情况下打印整数,
printf("%d ",i);
fflush(stdout);
答案 1 :(得分:0)
如果你在每次迭代中断,你会看到带有debuger的输出,但是因为你显然只是执行你的程序,所以你看到的是上一个clrscr();
的结果。由于i
为0,因此您无法进入if,打印发生在getch()
处。希望能回答你的问题。