函数定义:
/* 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 " ); 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 ", s ); printf( "%ld ", l ); printf( "%f ", fp ); printf( "%c ", 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 ", 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
That's good news