目录
目录
1、为什么使用文件?
我们写的程序的数据是存储在电脑的内存中,当我们运行一个程序之后,如果退出程序,内存回收,上一次输入输出的数据内容不会保留。如果我们想要把我们的输入输出的数据内容永久保留,我们就要使用文件。
2、什么是文件?
硬盘(磁盘)中的文件就是文件。
文件按功能分为程序文件和数据文件。
2.1程序文件
2.2数据文件
2.3文件名(文件标识)
3、二进制文件和文本文件



记事本文件打开
、
4、文件的打开和关闭
4.1流

4.2标准流
stdin:标准输入流,输入到屏幕上,scanf通过标准输入流输入数据到屏幕上
stdout:标准输出流,输出到屏幕上 printf通过标准输出流输出数据到屏幕上
stderr:标准错误流,大多数情况输出到屏幕显示器
scanf和printf默认打开了这三个流
这三个流的类型是FILEI* ,这个叫做文件指针
4.3文件指针
4.4文件的打开和关闭

5、写文件和读文件
FILE* pf = fopen("文件名","打开方式")
6、文件的顺序读写
6.1 fgetc和fputc
int fputc ( int character, FILE * stream );
int fgetc ( FILE * stream );
6.2 fgets和fputs
int fputs ( const char * str, FILE * stream );+——从把字符串写入到流中
char * fgets ( char * str, int num, FILE * stream );——从流中输入最多num-1个字符到字符数组中,最后一个位置默认放'\0'
6.3 scanf ,fscanf, sscanf
scanf
int scanf ( const char * format, ... );
fscanf
int fscanf ( FILE * stream, const char * format, ... );----从流里面读取格式化数据,在读取的结尾添加'\0'
sscanf
int sscanf ( const char * s, const char * format, ...);----从字符串中读取数据,并格式化输入(如果是字符串,在最后自动添加'\0')
6.4 printf, fprintf, sprintf
printf 默认是标准输出流
fprintf
int fprintf ( FILE * stream, const char * format, ... );把格式化的数据写到流中
sprintf
int sprintf ( char * str, const char * format, ... );---把格式化的数据写入到字符串中
6.5 fread, fwrite
fread
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );-----从流中读取count*size个byte的数据,并写入到ptr指针中,如果未读取到count*size个BYTE的数据,则读取结束。
fwrite
size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );
----把count*size个byte的数据写入到流中
7、文件的随机读写
7.1 fseek
int fseek ( FILE * stream, long int offset, int origin );----根据⽂件指针的位置和偏移量来定位⽂件指针。
返回值:
如果成功,返回0,如果失败,返回非0值
7.2 ftell
7.3 rewind

8、文件结束标志的判定
8.1 feof
int feof ( FILE * stream );
判断文件读取结束的原因是否为读取到了文件末尾,如果读取到了文件末尾,返回非0值,否则,返回0。
8.2 ferror
int ferror ( FILE * stream );
判断文件读取结束的原因是否为读取过程中发生了错误,如果读取过程发生了错误,返回非0值,否则,返回0。
8.3 如何判断
8.3.1 使用fgetc

8.3.2 使用fgets


8.4 使用fread

9、文件缓冲区
