一.scanf家族
1.scanf家族的原型如下。每个原型中的省略号表示一个可变长度的指针列表。从输入转换而来的值逐个存储到这些指针参数所指向的内存位置。
int fscanf(FILE *stream,char const *format,…);
int scanf(char const *format,…);
int sscanf(char const *format,…);
2.以上这些函数都从输入源读取字符并根据format字符串给出的格式代码对它们进行转换
3.不同点:
1>fscanf的输入源就是作为参数给出的流
2>scanf从标准输入读取
3>sscanf从第一个参数所给出的字符串中读取字符。
3.当格式化字符串到达末尾或者读取的输入不再匹配格式字符串所指定的类型时,输入就停止。
4.在任何一种情况下,被转换的输入值的数目作为函数的返回值返回。
5.如果在任何输入值被转换之前文件就已到达尾部,函数就返回常量值EOF。
二.printf家族
1.printf函数家族用于创建格式化的输出。这个家族共有三个函数:fprintf、printf 和sprintf。
2.它们的原型如下:
int fprintf(FILE *stream,char const *format,…);
int printf(char const *format,…);
int sprint(char *buffer,char const *format,…);
3. printf根据格式代码和format参数中的其他字符对参数列表中的值进行格式。
4.不同点:
1>使用printf,将输出结果输出到标准输出。
2>使用fprintf,可以使用任何输出流。
3>sprintf把它的结果作为一个NUL结尾的字符串存储到指定的buffer缓冲区而不是写人到流中。
这三个函数的返回值是实际打印或存储的字符数。