我们经常看到涉及到文件的代码中有FILE,经常写作FILE* fp。这个FILE被定义在c语言的头文件stdio.h文件里,如下:
struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE;
在linux源码里找。可以看这个http://bbs.chinaunix.net/thread-1827368-1-1.html,既然是linux源码,则可以看自己收藏的linux源码网站。
FILE *fp 是声明,声明fp是指针,用来指向FILE类型的对象(这个对象一般就是一个文件)。
fp=fopen("yssysj.txt","r"); fopen标准函数,打开磁盘文件yssysj.txt, 用于读,返回指针,指向FILE类型对象。
fscanf 用于从文件读入数据,scanf 从键盘读入数据。
书写格式上,fscanf 多一个参数,就是 fp,其它两者一样:
fscanf(fp,"%f",&x[i][j]);
scanf("%f",&x[i][j]);
FILE这个结构包含了文件操作的基本属性,对文件的操作都要通过这个结构的指针来进行,此种文件操作常用的函数见下表 函数 功能
fopen() 打开流
fclose() 关闭流
fputc() 写一个字符到流中
fgetc() 从流中读一个字符
fseek() 在流中定位到指定的字符
fputs() 写字符串到流
fgets() 从流中读一行或指定个字符
fprintf() 按格式输出到流
fscanf() 从流中按格式读取
feof() 到达文件尾时返回真值
ferror() 发生错误时返回其值
rewind() 复位文件定位器到文件开始处
remove() 删除文件
fread() 从流中读指定个数的字符
fwrite() 向流中写指定个数的字符
tmpfile() 生成一个临时文件流
tmpnam() 生成一个唯一的文件名
在UNIX环境编程的第5章就有说这个FILE对象