可以做网站背景音乐的英文歌曲,合肥seo网络优化公司,网站做的最好的网站有哪些,中化山东公路建设集团网站文件处理 一、文件的类型#xff08;一#xff09;文本文件和二进制文件 #xff08;二#xff09;程序文件和数据文件数据文件按照二进制储存 二、文件的打开和关闭#xff08;一#xff09;文件指针#xff08;二#xff09;文件的打开和关闭1、fopen2、fclose … 文件处理 一、文件的类型一文本文件和二进制文件 二程序文件和数据文件数据文件按照二进制储存 二、文件的打开和关闭一文件指针二文件的打开和关闭1、fopen2、fclose 三文件的打开方式 三、文件读写函数一fgetc二fputc三fgets四fputs五fscanf六fprintf七fwrite八fread九sscanf十sprintf十一fseek十二ftell十三rewind 四、文件缓冲区结束语 一、文件的类型
一文本文件和二进制文件
按照文本的组织信息来分文件可以分成二进制文件和文本文件 二程序文件和数据文件
按照文件功能来分可以分成程序文件和数据文件
数据文件按照二进制储存 二、文件的打开和关闭
一文件指针
每个被使用的文件都在内存中开辟了一个相应的文件信息区用来存放文件的相关信息如文件的名字文件状态及文件当前的位置等。这些信息是保存在一个结构体变量中的。该结构体类型是由系统声明的取名FILE.
struct _iobuf {char *_ptr;int _cnt;char *_base;int _flag;int _file;int _charbuf;int _bufsiz;char *_tmpfname;};
typedef struct _iobuf FILE;不同的C编译器的FILE类型包含的内容不完全相同但是大同小异。 每当打开一个文件的时候系统会根据文件的情况自动创建一个FILE结构的变量并填充其中的信息
二文件的打开和关闭
1、fopen
FILE * fopen ( const char * filename, const char * mode );用来打开文件。打开成功的同时函数会返回一个文件指针类型相当于文件和指针之间建立联系。
int main() {FILE* pf fopen(test.txt, w);if (pf ! NULL) {fputs(man, what can i see, pf);fclose(pf);}return 0;
}可以观察到我们的字符串已经被写入到了文件之中。
2、fclose
int fclose ( FILE * stream );用来关闭文件如果文件成功关闭那么就会返回0如果失败返回EOF
三文件的打开方式
文件使用方式 含义 如果指定文件不存在
“r”只读 为了输入数据打开一个已经存在的文本文件 出错
“w”只写 为了输出数据打开一个文本文件 新建文件
“a”追加 向文本文件尾添加数据 新建文件
“rb”只读 为了输入数据打开一个二进制文件 出错
“wb”只写 为了输出数据打开一个二进制文件 新建文件
“ab”追加 向一个二进制文件尾添加数据 新建文件
“r”读写 为了读和写打开一个文本文件 出错
“w”读写 为了读和写建议一个新的文件 新建文件
“a”读写 打开一个文件在文件尾进行读写 新建文件
“rb”读写 为了读和写打开一个二进制文件 出错
“wb”读写 为了读和写新建一个新的二进制文件 新建文件
“ab”读写 打开一个二进制文件在文件尾进行读和写 新建文件三、文件读写函数 一fgetc
int fgetc ( FILE * stream );成功 : 将返回字符读取提升为 int 值。 如果位置指示器位于文件末尾则该函数返回 EOF 并设置流的 EOF 指示符 feof。
失败 返回类型为 int 以适应特殊值 EOF该值表示失败。 如果发生其他读取错误该函数也会返回 EOF但会设置其错误指示器 ferror。
二fputc
int fputc ( int character, FILE * stream );成功 将返回写入的字符。 失败 返回 EOF 并设置错误指示器 ferror.
三fgets
char * fgets ( char * str, int num, FILE * stream );成功 : 如果读取到字符该函数返回 str如果一个都没有读取到返回空指针。读取字符时遇到文件末尾设置 eof 指示feof 失败 : 则设置错误指示符 ferror 并返回空指针
四fputs
int fputs ( const char * str, FILE * stream );成功 : 将返回一个非负值。 失败 : 该函数返回 EOF 并设置错误指示器 ferror。
五fscanf
int fscanf ( FILE * stream, const char * format, ... );成功 : 该函数返回已成功填充的参数列表的项目数。读取字符时遇到文件末尾设置 eof 指示feof 失败 : 该函数返回 EOF 并设置错误指示器 ferror。 如果在解释宽字符时发生编码错误该函数会将 errno 设置为 EILSEQ。
六fprintf
int fprintf ( FILE * stream, const char * format, ... );成功 : 将返回写入的字符总数。 失败 则设置错误指示符 ferror 并返回负数。 如果在写入宽字符时发生多字节字符编码错误则将 errno 设置为 EILSEQ 并返回负数。
七fwrite
size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );成功 返回成功写入的元素总数。 失败 如果此数字与 count 参数不同则写入错误会阻止函数完成。在这种情况下将为流设置错误指示器 ferror。
八fread
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );成功 返回成功读取的元素总数。 失败 如果此数字与 count 参数不同则表示读取时发生读取错误或达到文件末尾。在这两种情况下都设置了正确的指示器可以分别使用 ferror 和 feof 进行检查。
九sscanf
int sscanf ( const char * s, const char * format, ...);成功 该函数返回已成功填充的参数列表中的项目数。 失败 如果在成功解释任何数据之前输入失败返回 EOF。 十sprintf
成功 将返回写入的字符总数。此计数不包括自动附加在字符串末尾的附加 null 字符。 失败 : 则返回一个负数。 十一fseek
定位文件指针
int fseek ( FILE * stream, long int offset, int origin );成功 该函数返回零。 失败 返回非零值。 如果发生读写错误则设置错误指示器 ferror。 orgin可以取值
十二ftell
求文件指针相对于起始位置的偏移量
long int ftell ( FILE * stream );成功 : 将返回位置指示器的当前值。 失败 : 返回 -1并将 errno 设置为系统特定的正值。
十三rewind
将文件指针指向文件的首地址可以fseek来达到相同的作用
void rewind ( FILE * stream );四、文件缓冲区
ANSIC 标准采用“缓冲文件系统”处理的数据文件的所谓缓冲文件系统是指系统自动地在内存中为程序中每一个正在使用的文件开辟一块“文件缓冲区”。从内存向磁盘输出数据会先送到内存中的缓冲区装满缓冲区后才一起送到磁盘上。如果从磁盘向计算机读入数据则从磁盘文件中读取数据输入到内存缓冲区充满缓冲区然后再从缓冲区逐个地将数据送到程序数据区程序变量等。缓冲区的大小根据C编译系统决定的。 结束语
相信有了这篇文件操作下次再也不用担心忘记重新学啦。亲爱的小伙伴不要忘记支持博主哦