#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 强制刷新 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
这是个死循环!