【文件属性】:
文件名称:格式化输入-数据流图到模块结构图的直接转换方法
文件大小:5.82MB
文件格式:PDF
更新时间:2024-07-12 01:23:35
APUE UNIX
5 . 11.1 格式化输出
执行格式化输出处理的是三个p r i n t f函数。
#include
int printf(const char *f o r m a t, ...);
int fprintf(FILE *f p, const char *f o r m a t, ...);
两个函数返回:若成功则为输出字符数,若输出出错则为负值
int sprintf(char *b u f, const char *f o r m a t, ...);
返回:存入数组的字符数
p r i n t f将格式化数据写到标准输出,f p r i n t f写至指定的流,s p r i n t f将格式化的字符送入数组b u f中。
s p r i n t f在该数组的尾端自动加一个n u l l字节,但该字节不包括在返回值中。
4 . 3 B S D定义s p r i n t f返回其第一个参数(缓存指针,类型为 c h a r*),而不是一
个整型。ANSI C要求s p r i n t f返回一个整型。
注意,s p r i n t f可能会造成由b u f指向的缓存的溢出。保证该缓存有足够长度是
调用者的责任。
对这三个函数可能使用的各种格式变换,请参阅U N I X手册,或K e r n i g h a n和R i t c h i e〔1 9 8 8〕
的附录B。
下列三种p r i n t f族的变体类似于上面的三种,但是可变参数表 ( . . . )代换成了a rg。
# i n c l u d e < s t d a r g . h >
# i n c l u d e < s t d i o . h >
int vprintf(const char *f o r m a t, va_list a rg) ;
int vfprintf(FILE *f p, const char *f o r m a t, va_list a rg) ;
两个函数返回:若成功则为输出字符数,若输出出错则为负值
int vsprintf(char *b u f, const char *f o r m a t, va_list a rg) ;
返回:存入数组的字符数
在附录B的出错例程中,将使用v s p r i n t f函数。
关于ANSI C标准中有关可变长度参数表的详细说明请参阅 K e r n i g h a n和R i t c h i e〔1 9 8 8〕的
7 . 3节。应当了解的是,由ANSI C提供的可变长度参数表例程(< s t d a rg . h >头文件和相关的例程)
与由S V R 3(以及更早版本)和4 . 3 B S D提供的< v a r a rg s . h >例程是不同的。
5 . 11.2 格式化输入
执行格式化输入处理的是三个s c a n f函数。
第 5章 标 准 I/O 库 1 0 3