User Tools

Site Tools


Sidebar

Programming Reference/Librarys

Question & Answer

Q&A is closed







c:stdio.h:vfscanf

vfscanf

int vfscanf ( FILE * stream, const char * format, va_list arg );

description of vfscanf

The vscanf(), vfscanf(), and vsscanf() functions shall be equivalent to the scanf(), fscanf(), and sscanf() functions, respectively, except that instead of being called with a variable number of arguments, they are called with an argument list as defined in the <stdarg.h> header. These functions shall not invoke the va_end macro. As these functions invoke the va_arg macro, the value of ap after the return is unspecified.

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
 
FILE *fp;
 
int my_vfscanf(char *fmt, ...)
{
   va_list  argptr;
   int cnt;
 
   va_start(argptr, fmt);
   cnt = vfscanf(fp, fmt, argptr);
   va_end(argptr);
   return(cnt);
}
 
int main(void)
{
   int inumber = 6;
   float fnumber = 7.0;
   char string[30] = "hoopy frood";
 
   fp = tmpfile();
   if (fp == NULL)
   {
      perror("tmpfile() call");
      exit(1);
   }
 
   fprintf(fp,"%d %f %s\n",inumber,fnumber,string);
   rewind(fp);
 
   my_vfscanf("%d %f %s", &inumber, &fnumber, string);
   printf("%d * %f = %s\n", inumber, fnumber, string);
   fclose(fp);
 
   return 0;
}

output of vfscanf c example

  6 * 7.000000 = hoopy

on the occasion of the current invasion of Russia in Ukraine

Russian Stop this War
c/stdio.h/vfscanf.txt · Last modified: 2024/02/16 01:05 (external edit)

Impressum Datenschutz