近段时间调程序调到用到printf,老感觉好像不太对,狂抓N久,终于搞定问题,因为使用输出函数不当,造成千千万脑细胞过度疲劳死亡。下面是我对C语言输出接口,使用方法的总结:
printf
函数原型 int printf( const char *format, ... );
printf是我们开始接触C语言用得比较多的一个输出接口。这里printf是带行缓冲功能的一个输出函数。也即是说,当调用printf后,并不是立即输出相关信息,从下面代码就可以推测printf是一个行缓冲函数:
#include <stdio.h>
int main()
{
printf("test");
while(1);
}
无输出
#include <stdio.h>
int main()
{
printf("test\n");
while(1);
}
输出: test\n
可以看出printf在未遇到'\n'时不会立即输出,当然必须是缓冲区还有足够的空间。如果需要在printf后立即输出,那么请使用强制刷新fflush(FILE *stream)函数
#include <stdio.h>
int main()
{
printf(