您的位置:首页 > 编程语言 > C语言/C++

C语言输出接口用法比较

2013-12-11 19:53 183 查看
近段时间调程序调到用到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("test");
fflush(stdout);
while(1);
}
以上程序代码,运行输出:test

fprintf

函数原型 int fprintf( FILE *stream, const char *format, ... );
fprintf是向一个FILE* stream格式化输入数据的函数。FILE* stream可是以一个通过fopen打开的文件,可以是C库定义stream标准流stdout(标准输出),stderr(标准错误输出)。
使用fprintf(stdout, const char *format, ...)的效果同printf(const char *format, ...),fprintf(stderr, const char *format, ...)实现向系统定义的标准错误输出打印信息,这里的信息输出是立即打印到stderr的。 所以这个也可作为调试信息log工具。

sprintf

函数原型 int sprintf(char *buffer, const char *format, ... ); 格式化打印信息至一个字符串。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: