vfprintf()函数用于以格式化形式将一个字符串写给指定的流。
vfprintf()函数 语法
int vfprintf(FILE*p,char*format,va_list param);
参数p为要从中读取字符的文件流;
参数format为输出的格式;
参数param为处理参数。
vfprintf()函数返回实际输出的字符数。
vfprintf()函数 示例
本示例使用vfprintf函数以指定格式化形式分别将字符串“15”、“3.14”、”res”写入指定流a中。其具体代码如下所示:
#include<stdio.h>
#include<stdlib.h>
#include<stdarg.h>
FILE*p;
int vfpf(char*fmt,……)/*自定义函数*/
{
va_list argp;
int a;
va_start(argp,fmt);/*开始使用可变参数*/
a=vfprintf(p,fmt,argp);/*输出到流*/
va_end(argp);/*停止使用可变参数*/
return(a);
}
int main(void)
{
int i=15;/*定义变量*/
float f=3.14;
char s[4]="res";
p=tmpfile();/*以二进制形式打开暂存文件*/
if(p==NULL)/*判断结果*/
{
perror("tmpfile()call");/*输出错误提示*/
exit(1);
}
vfpf("%d%f%s",i,f,s);/*调用自定义函数*/
rewind(p);/*重定位指针到文件开头*/
fscanf(p,"%d%f%s",&i,&f,s);/*从流中格式化输入*/
printf("%d%f%s ",i,f,s);/*输出*/
fclose(p);/*关闭文件*/
return 0;
}
运行结果如图所示。