vfscanf()函数用于以格式化形式从流中读入一个字符串。
vfscanf()函数 语法
int vfscanf(FILE*p,char*format,va_list param);
参数p为要输入的流;
参数format为输入的格式;
参数param为要处理的参数。
vfscanf()函数返回输入的字符。
vfscanf()函数 示例
本示例使用vfscanf函数以指定的格式化形式从流a中读入字符“24”、“40.0”、”boy”。其具体代码如下所示:
#include<stdio.h>
#include<stdlib.h>
#include<stdarg.h>
FILE*p;
int vfsf(char*fmt,……)/*自定义函数*/
{
va_list argp;
int a;
va_start(argp,fmt);/*开始使用可变参数*/
a=vfscanf(p,fmt,argp);/*输出到流*/
va_end(argp);/*停止使用可变参数*/
return(a);
}
int main(void)
{
int i=24;/*定义变量*/
float f=40.0;
char s[4]="boy";
p=tmpfile();/*以二进制形式打开暂存文件*/
if(p==NULL)/*判断结果*/
{
perror("tmpfile()call");/*输出错误提示*/
exit(1);
}
vfsf("%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;
}
运行结果如图所示。