文件指针类型符:FILE 例如: FILE *fp;
5个标准文件
stdin(标准输入【键盘】)、
stdout(标准输出【显示器】)、
stdaux(标准辅助输入输出【异步串行口】)
stdprn(标准打印机)
stderr(标准错误输出【显示器】)
两个文件判断函数
ferror() 判断操作错误
feof() 判断文件末尾
1、打开文件:
FILE * fopen(char * filename,char *mode);-------------------->FILE * fopen('"文件路径","打开方式");
打开方式有:r----只读,为只读打开一个字符文件
w----只写 为只写打开一个字符文件,文件指针指向文件首部
a-----追加 打开一个字符文件,指向文件尾部,在已经存在的文件中追加数据
rb---只读 为只读打开一个二进制文件
wb---只写 为只写打开一个二进制文件
ab--追加 打开文件一向文件追加数据
2、关闭文件
fclose(FILE * file) -------------------------- fclose(要关闭的文件指针)
fcloseall() ------------关闭所有打开的文件
注意:exit()隶属于stdlib.h库
3、文件读取和写入。
int fgetc(FILE * filename) 读写一个字符
int fputc(int ch ,FILE * filename) 向磁盘文件写入一个字符,执行成功,返回写入的字符,否则返回EOF
char * fgets(char *str, int n,FILE *filename) 从filename指向的文件中读取n-1个字符,把他送到str指向的字符数组
char * fputs(char *str,FILE * filename) 把缓冲区str中得字符串写入到filename指定的文件中
fscanf(FILE *filename ,char *format,<variable-list>)
例如fscanf(fp,"%s%d%f",&a,&b,&c) 安%s,%d,%f的格式从fp指向的文件读取数据分别送往a,b,c
fprintf(FILE *filename ,char *format,<variable-list>)
例如:fprintf(fp,"%s,%d%f",a,b,c),将变量 a,b,c内容以%s,%d,%f方式写入fp指向的文件
4、文件定位
int fseek(FILE *filename long offset,int origin) 将文件指针移到到制定的为止, origin基准位置,offset为位移量,执行成功则返回0
origin位置可取一下三个值
SEEK_SET 0 文件开头
SEEK_CUR 1 文件指针当前位置
SEEK_END 2 文件尾部
int ftell(FILE* filename); 返回指针在当前文件中相对于文件头的偏移量,若调用出错返回-1
int rewind(FILE *filename) 用于把指针移动到当前文件头
5、文件随机读写函数
int fread(void * ptr,int size,int count,FILE* filename)
int fwrite(void * ptr,int size,int count,FILE* filename)
ptr 指向缓冲区
count 为数据项
size 每个数据项项长度为size
filename 文件指针