C语言printf输出时,为什么当我把 格式串中的 \n 去掉之后无法输出了呢?

#include<stdio.h>
#include<time.h>
int main(){
int a;
int t;
for(a=0;;a++){
t=time(0);
printf("%d\n",a); //为什么当我把 \n 去掉之后, 无法输出了呢?

while(t==time(0));
}
}

printf并不会直接输出到屏幕,而是输出到缓冲区。
只有当有刷新缓冲区的时候才会输出到屏幕。
导致缓冲区刷新到情况有这些:1 强制刷新 fflush;2,放到缓冲区到内容中包含\n \r ;3,缓冲区已满;4,需要从缓冲区拿东西到时候,如执行scanf。
去掉那个\n之后缓冲区一直得不到刷新,会一直等到缓冲区满的时候才能输出,所以你会很长一段时间看不到输出,除非你有耐心等到缓冲区被塞满。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-10

去掉\n也可以 不过就是没换行了 

第2个回答  2012-08-10
怎么说吧,\N会把缓冲区的字符打印出来,你去掉\n,一直在死循环,腾不出CPU打印字符串出来
第3个回答  2012-08-10
\n 换行作用。
第4个回答  2012-08-10
关掉,再进去运行试试。c有时会出点毛病。
第5个回答  2012-08-10
这是个死循环!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网