文件操作
硬盘或磁盘上的文件叫文件,一般有程序文件和数据文件。
程序: .c .obj .exe等等
数据 .txt 此处主要说数据文件
文件名
文件名包括:文件路径+文件名主干+文件后缀
例如:"C:\Users\denglianxi\Documents\新建 文本文档.txt"
使用文件做到了数据的持久化
文件指针
每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的信息,这个区域是是一个FILE结构体变量
这个结构体类型是系统声明的 ,我们不必太过深究。
eg:FILE *pf pf指向FILE类型的结构体变量
文件的打开和关闭
ANSIC 规定 fopen 打开文件 ,fclose 关闭文件。
FILE *fopen( const char *filename, const char *mode );(返回指针指向那个文件,找不到则返回NULL)
“r” read 只读
"w" write 只写
"a" 追加
int fclose( FILE *stream );
在打开文件(硬盘中)的时候,会打开一个相应的文件信息区(内存中)
操作系统系统调用
简单认识一下流的概念。
流:文件流,标准输入(stdin键盘之类)输出(显示stdout之类)流,标准错误流【FILE*类型】
文件的顺序读写
字符输入函数 int fgetc( FILE *stream );读目标文件(所有输入流)
字符输出函数 int fputc( int c, FILE *stream );打印一个字符到目标文件(所有输出流)
文本行输入函数 char *fgets( char *string, int n, FILE *stream );同上(所有输入流)
文本行输出函数 int fputs( const char *string, FILE *stream );同上(所有输入流)
格式化输入函数 int fscanf( FILE *stream, const char *format [, argument ]... );读(所有输入流)
格式化输出函数 int fprintf( FILE *stream, const char *format [, argument ]...);写(所有输入流)
二进制输入 size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
二进制输出 size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );
用二进制写用二进制的读
对比一组数据
printf - 格式化的输入函数
sprintf - int sprintf( char *buffer, const char *format [, argument] ... );
把一个格式化的数据转化成字符串,针对所有输入流格式化的输出函数
scanf - int scanf( const char *format [,argument]... );
sscanf - int sscanf( const char *buffer, const char *format [, argument ] ... );
把一个字符串转化成格式化的