fscanf函数

函数定义:

int fscanf( FILE *stream, const char *format [, argument ]... );
下面是csdn的例子:
/* FSCANF.C: This program writes formatted
 * data to a file. It then uses fscanf to
 * read the various data back from the file.
 */

#include <stdio.h>

FILE *stream;

void main( void )
{
   long l;
   float fp;
   char s[81];
   char c;

   stream = fopen( "fscanf.out", "w+" );
   if( stream == NULL )
      printf( "The file fscanf.out was not opened\n" );
   else
   {
      fprintf( stream, "%s %ld %f%c", "a-string", 
               65000, 3.14159, 'x' );

      /* Set pointer to beginning of file: */
      fseek( stream, 0L, SEEK_SET );

      /* Read data back from file: */
      fscanf( stream, "%s", s );
      fscanf( stream, "%ld", &l );

      fscanf( stream, "%f", &fp );
      fscanf( stream, "%c", &c );

      /* Output data read: */
      printf( "%s\n", s );
      printf( "%ld\n", l );
      printf( "%f\n", fp );
      printf( "%c\n", c );

      fclose( stream );
   }
}

Output
a-string
65000
3.141590
x

下面给出一个例子,结合相似的几个函数操作。(也是文件的一般操作)

1 写操作函数
#include<stdio.h> 
     main() 
     { 
          char *s="That's good news");  /*定义字符串指针并初始化*/ 
          int i=617;                    /*定义整型变量并初始化*/ 
          FILE *fp;                     /*定义文件指针*/ 
          fp=fopne("test.dat", "w");    /*建立一个文字文件只写*/ 
          fputs("Your score of TOEFLis", fp);/*向所建文件写入一串字符*/ 
          fputc(':', fp);               /*向所建文件写冒号:*/ 
          fprintf(fp, "%d\n", i);       /*向所建文件写一整型数*/ 
          fprintf(fp, "%s", s);         /*向所建文件写一字符串*/ 
          fclose(fp);                   /*关闭文件*/ 
     } 

执行以后:
test.dat 为一个文件:
里面内容为:
Your score of TEFLis:617
That's good news


2 读操作函数

<span style="font-size:14px;">#include<stdio.h> 
     main() 
     { 
          char *s, m[20]; 
          int i; 
          FILE  *fp; 
          fp=fopen("test.dat", "r");    /*打开文字文件只读*/ 
          fgets(s, 24, fp);             /*从文件中读取23个字符*/ 
          printf("%s", s);              /*输出所读的字符串*/ 
          fscanf(fp, "%d", &i);         /*读取整型数*/ 
          printf("%d", i);              /*输出所读整型数*/ 
          putchar(fgetc(fp));           /*读取一个字符同时输出*/ 
          fgets(m, 17, fp);             /*读取16个字符*/ 
          puts(m);                      /*输出所读字符串*/ 
          fclose(fp);                   /*关闭文件*/ 
          getch();                      /*等待任一键*/ 
     } </span>


执行效果如下:
  Your score of TOEFL is: 617
    That's good news 


你可能感兴趣的:(File,fscanf)