在C语言中,执行格式化输出处理的主要是三个printf
函数:
#include <stdio.h>
int printf(const char *format, ...);
int fprintf(FILE *fp, const char *format, ...);
int sprintf(char *buf, const char *format, ...);
</stdio.h>
这些函数返回:若成功则为输出字符数,若输出出错则为负值。
-
printf
将格式化数据写到标准输出, -
fprintf
写至指定的流, -
sprintf
将格式化的字符送入数组buf
中,并在该数组的尾端自动加一个null
字节,但该字节不包括在返回值中。
在使用这些函数时,有必要了解其各种格式变换。你可以查阅UNIX手册或Kernighan和Ritchie的著作《C编程语言》〔1988〕的附录B。
下列三种printf
族的变体类似于上述三种,但是可变参数表(...
)代换成了arg
:
#include <stdarg.h>
#include <stdio.h>
int vprintf(const char *format, va_list arg);
int vfprintf(FILE *fp, const char *format, va_list arg);
int vsprintf(char *buf, const char *format, va_list arg);
</stdio.h></stdarg.h>
这些函数返回:若成功则为输出字符数,若输出出错则为负值。vsprintf
返回存入数组的字符数。在附录B的出错例程中,将使用vsprintf
函数。
需要注意的是,由ANSI C提供的可变长度参数表例程(
头文件和相关的例程)与由SVR3(以及更早版本)和4.3BSD提供的
例程是不同的。关于ANSI C标准中有关可变长度参数表的详细说明,请参阅Kernighan和Ritchie的著作〔1988〕的7.3节。
至于格式化输入,执行格式化输入处理的是三个scanf
函数,更多细节请参考这里。
学习和掌握这些函数能让你在C语言编程中得心应手,无论是处理复杂的字符串操作,还是需要精确控制输出格式,它们都是不可或缺的工具!
暂无评论