C语言输出接口用法比较
2013-12-11 19:53
183 查看
近段时间调程序调到用到printf,老感觉好像不太对,狂抓N久,终于搞定问题,因为使用输出函数不当,造成千千万脑细胞过度疲劳死亡。下面是我对C语言输出接口,使用方法的总结:
printf是我们开始接触C语言用得比较多的一个输出接口。这里printf是带行缓冲功能的一个输出函数。也即是说,当调用printf后,并不是立即输出相关信息,从下面代码就可以推测printf是一个行缓冲函数:
无输出
可以看出printf在未遇到'\n'时不会立即输出,当然必须是缓冲区还有足够的空间。如果需要在printf后立即输出,那么请使用强制刷新fflush(FILE *stream)函数
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工具。
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, ... ); 格式化打印信息至一个字符串。相关文章推荐
- c语言:对于一个变量n,const用法和指针的比较
- C语言,输出格式,printf函数输出格式用法
- C语言输出百分号(%)的方法,比较迷惑
- C语言基础(输出时%用法)
- C语言qsort和C++sort的用法小结和区别比较
- C语言初学 比较五个整数并输出最大值和最小值2
- C语言变量类型与输出控制用法实例教程
- Stirng类的常见用法:输出str长度,输出第一个"o",和最后一个"o"的索引,将str中的字符"l"替换成"m",字符串str按空格“ ”分割为2个字符串,比较这两个字符串是否相等。
- c语言printf()输出格式 用法联系
- X11硬线接口信号 与Profisafe安全输入输出信号之间的区别与比较
- C语言中基本的输入和输出函数的用法第一讲(C语言学习随笔三)
- c语言:对于一个变量n,const用法和指针的比较
- C语言中基本的输入和输出函数的用法第二讲(C语言学习随笔四)
- 关于 java 比较的2个接口 Comparator 和 Comparable 基本用法
- 初学C语言:比较交换3个实数值大小,并按序输出
- C语言初学 比较五个整数并输出最大值和最小值1
- 2017年1月19日学习总结----c语言可变参数的用法
- 飞思卡尔单片机DZ60---TPM1输出比较
- C语言中printf格式化输出函数
- 10月8日 c语言 数组元素作函数实参 输入10个数,要求输出其中值最大的元素和该数是第几个数