在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语言编程中得心应手,无论是处理复杂的字符串操作,还是需要精确控制输出格式,它们都是不可或缺的工具!