函数定义:
/* 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
That's good news