C语言文件读写

来源:互联网 发布:淘宝卖家分类怎么设置 编辑:程序博客网 时间:2024/04/30 12:14

1.fopen打开文件

fopen函数原型:FILE *fopen(const char *filename, const char *mode);
fopen返回FILE  *文件指针,打开失败返回NULL,注意检查。
filename为绝对路径或相对路径
mode可为:r,w,a(文本方式)、rb,wb(二进制方式打开),r+可读可写
例如:FILE  *fp=fopen("data.txt","r");

2.fclose关闭文件:打开文件操作完成后要关闭文件

fclose函数原型:int fclose(FILE *stream);
例如:fclose(fp);

3.读写文件:

fscanf、fprintf
fgetc、fputc
fgets、fputs
fread、fwrite

3.1 fscanf、fprintf,即按格式读写

fscanf函数原型:int fscanf(FILE *stream, const char *format[, address, ...]);   
fscanf文件读完返回EOF即-1
fprintf函数原型:int fprintf(FILE *stream, const char *format[, argument, ...]);

3.2 fgetc、fputc,按单个字节读写

fgetc函数原型:int fgetc(FILE *stream);    返回读取的字节,读完后返回EOF
fputc函数原型:int fputc(int c, FILE *stream);    把c(八位)写入文件

3.3 fgetc、fputs,按行读

fgets函数原型:char *fgets(char *s, int n, FILE *stream);     
它一次从文件中读取一行,包括换行符,放入字符串s中,并且加上字符串结尾标志符’\0’。参数n代表缓冲区s中最多能容纳多少个字符(不算结尾标志符’\0’);fgets函数的返回值是一个char *类型的指针,和s指向同一个地方。如果再没有数据可以读取,那么函数的返回值就NULL。
fputs函数原型:int fputs(const char *s, FILE *stream);

3.4 fread、fwrite,按块读写(必须用二进制方式打开),用于结构体数据写读较好

fread函数原型:unsigned fread(void *ptr, unsigned size, unsigned n, FILE *stream);
该函数从文件中读取n个大小为size字节的数据块, 总计n*size字节,存放到从地址ptr 开始的内存中。返回值是读取的字节数。如果一个字节也没有读取,返回值就是0。
fwrite函数原型:unsigned fwrite(const void *ptr, unsigned size, unsigned n, FILE *stream);
该函数将内存中从地址 ptr 开始的n*size个字节的内容,写入到文件中去。

4.用fseek改变文件指针的位置

fseek函数原型:int fseek(FILE *stream, long offset, int whence);
该函数将与stream关联的文件的“当前位置”设为距whence处offset字节的地方。whence可以有以下三种取值,这三种取值都是在stdio.h里定义的标识符:
SEEK_SET: 代表文件开头
SEEK_CUR: 代表执行本函数前文件的当前位置
SEEK_END: 代表文件结尾处
0 0
原创粉丝点击