C语言基础教程之文件操作
C语言文件读写
更多C/C++资料下载,C/C++学习乐园:747821062一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节。C 语言不仅提供了访问顶层的函数,也提供了底层(OS)调用来处理存储设备上的文件。文件管理的基本流程如下:
打开文件
读写文件
关闭文件
打开文件
更多C/C++资料下载,C/C++学习乐园:747821062您可以使用 fopen( ) 函数来创建一个新的文件或者打开一个已有的文件,这个调用会初始化类型 FILE 的一个对象,类型 FILE 包含了所有用来控制流的必要的信息。下面是这个函数调用的原型:
在这里,filename 是字符串,用来命名文件,访问模式mode 有一下取值情况:
更多C/C++资料下载,C/C++学习乐园:747821062如果处理的是二进制文件,则需使用下面的访问模式来取代上面的访问模式:"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"关闭文件
为了关闭文件,请使用 fclose( ) 函数。函数的原型: int fclose( FILE *fp );如果成功关闭文件,fclose( ) 函数返回零,如果关闭文件时发生错误,函数返回 EOF。这个函数实际上,会清空缓冲区中的数据,关闭文件,并释放用于该文件的所有内存。EOF 是一个定义在头文件 stdio.h 中的常量。C语言 标准库提供了各种函数来按字符或者以固定长度字符串的形式读写文件。
写入文件
字符的形式写入:int fputc( int c, FILE *fp );字符串的形式写入:int fputs( const char *s, FILE *fp );格式化写入:int fprintf(FILE *fp,const char *format, ...) ;
更多C/C++资料下载,C/C++学习乐园:747821062读取文件
下面是从文件读取单个字符的最简单的函数:
字符的形式读取:int fgetc(FILE *fp );字符串的形式读取:char *fgets( char *buf, int n, FILE *fp );格式化读取: int fscanf(FILE *fp, const char *format, ...);
二进制 I/O 函数
更多C/C++资料下载,C/C++学习乐园:747821062下面两个函数用于二进制输入和输出:
更多C/C++资料下载,C/C++学习乐园:747821062这两个函数都是用于存储块的读写 - 通常是数组或结构体。
文件指针
移动文件指针到指定位置读,或插入写:int fseek(FILE *stream, long offset, int whence);fseek 设置当前读写点到 offset 处, whence 可以是 SEEK_SET,SEEK_CUR,SEEK_END 这些值决定是从文件头、当前点和文件尾计算偏移量 offset。
你可以定义一个文件指针 FILE *fp,当你打开一个文件时,文件指针指向开头,你要指到多少个字节,只要控制偏移量就好,例如, 相对当前位置往后移动一个字节:fseek(fp,1,SEEK_CUR); 中间的值就是偏移量。 如果你要往前移动一个字节,直接改为负值就可以:fseek(fp,-1,SEEK_CUR)。
将文件内部的位置指针重新指向一个流(数据流/文件)的开头:void rewind(FILE *stream);