C语言格式化输出函数及使用禁区
编译环境: Debian: 7.6 gcc: 4.7.2
#include <stdio.h> int printf(const char *format, ...); int fprintf(FILE *stream, const char *format, ...); int sprintf(char *str, const char *format, ...); int snprintf(char *str, size_t size, const char *format, ...); #include <stdarg.h> int vprintf(const char *format, va_list ap); int vfprintf(FILE *stream, const char *format, va_list ap); int vsprintf(char *str, const char *format, va_list ap); int vsnprintf(char *str, size_t size, const char *format, va_list ap);
printf("%02x", 100); /* 输出是16进制 */ printf("%dx", 100); /* 输出是10进制 */
printf()
vprintf()
|
输出至标准输出流stdout
|
fprintf()
vfprintf()
|
输出至指定输出流
|
sprintf()
snprintf()
vsprintf()
vsnprintf()
|
输出至字串str
|
snprintf()
vsnprintf()
|
写入至多size个字节(含‘\0‘)到dtr
|
vprintf()
vfprintf()
vsprintf()
vsnprintf()
|
分别等同于:printf()
fprintf()
sprintf()
snprintf()
区别是:它们都有va_list列表,一旦调用完毕,ap即成为“未定义”状态
|
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。