文件
打开文件:
fopen(char *s,“r”) : 返回文件指针,打开不成功返回NULL。
打开方式:
r : 只读,文本文件。
w : 只写,文本文件,创建新的并打开文件,无论是否存在,都创建新的,不是在原文件上动手脚。
a : 只写,文本文件,文件位置指针到最后,在文件末尾写。
b : 与上面结合表示打开二进制文件。
(+) :与上边结合表示读写。
feof(fp) : 判断文件位置指针是否到文件末尾,读到末尾返回真值。
关闭文件
fclose§;
FILE *p = fopen("D:\\demo.txt","r"); //D:\\两个反斜杠因为转义字符
文件读写
文件有一个文件指针和一个不可见的读写位置指针,每读写多少文件位置指针就后移多少,文件的读写都是从文件位置指针处开始的,要手动移动文件位置指针可用
fseek(file *p,long offset,int fromwhere);
从formwhere处移动offset个字节,来指示下一个要读写的数据位置。
offset为正向后移动,为负向前移动,规定为长整型数据。
fromwhere:
- SEEK_SET或0:起始位置
- SEEK_CUR或1:当前位置
- SEEK_END或2:文件结尾
rewind(file *p);
将文件位置指针指向文件头。
按字符读写
fgetc(fp) : 从文件中读一个字符,并将文件的位置指针后移一位。能读空白字符。
fputc(int/char,p) : 写成功返回写入字符,失败返回EOF(-1)。
按字符串读写
fgets(char *s,int n,file *p) : 从文件读入,读n-1个字符到s中,读入换行符后停止读入。
fputs(char *s,file *p) : 写到文件中。
按格式读写
fprintf(file *p,"%10d,%c,%8s",a,b,c);
fscanf(file *p,"%10d,%c,%8s",&a,&b,&c);
按数据块读写
fread(void *buffer, u int size, u int count, file *p);
fwrite(void *buffer, u int size, u int count, file *p);
从文件读写count块大小为size的数据到buffer中去,按数据块读写允许读写多块相同类型的数据,如数组的读写可以一次完成。
来源:CSDN
作者:菜得只能自己玩泥巴
链接:https://blog.csdn.net/qq_36976201/article/details/104094640