C语言之文件操作
来源:互联网 发布:软件定义物联网 编辑:程序博客网 时间:2024/05/16 07:32
一、文本文件与二进制文件
1、文本文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码.
2、二进制文件是按二进制的编码方式来存放文件的。
二、文件定义·
1、文件结构指针的定义方法为FILE *fp
fp是FILE类型的指针变量,通过fp可以找到某个存放某个文件的结构体变量,然后找到
该文件,对文件实行操作。
2、文件可以看成一组字符或二进制数据的集合,叫做数据流,结束标志为-1,符号为
EOF,其定义包含在头文件中
定义格式
#include EOF (-1)
由于FILE为结构体类型,因此FILE 类型的变量之间不能简单进行进行赋值运算。
文件处理函数基本都以FILE类型的变量
三、文件操作详解
1、文件的打开操作 fopen 打开一个文件
格式 FILE *fopen
打开文件的作用是:
(1)分配给打开文件一个FILE 类型的文件结构体变量,并将有关信息填入文件结构体变量;
(2)开辟一个缓冲区;
(3)调用操作系统提供的打开文件或建立新文件功能,打开或建立指定文件;
2、文件的关闭操作 fclose 关闭一个文件
int fclose(FILE *fp)
3、文件的读写操作:
@ fgetc 从文件中读取一个字符
int fgetc(FILE *fp)
返回值:
正常返回: 返回读取字符的代码。
非正常返回:返回EOF。例如,要从"写打开"文件中读取一个字符时,会发生错误而返回一个EOF。
@fputc 写一个字符到文件中去
int fputc(int ch,FILE *fp
返回值
正常返回: 要写入字符的代码。
非正常返回:返回EOF。例如,要往"读打开"文件中写一个字符时,会发生错误而返回一个EOF
@fgets 从文件中读取一个字符串
char *fgets(char *str,int n,FILE *fp)
返回值
正常返回:返回字符串的内存首地址,即str的值。
非正常返回:返回一个NULL值,此时应当用feof()或ferror()函数来判别是读取到了文
件尾,还是发生了错误。例如,要从"写打开"文件中读取字符串,将
发生错误而返回一个NULL值。
@ fputs 写一个字符串到文件中去
int fputs(char *str,FILE *fp)
返回值
正常返回: 写入文件的字符个数,即字符串的长度。
非正常返回:返回一个NULL值,此时应当用feof()或ferror()函数来判别是读取到
了文件尾,还是发生了错误。例如,要往一个"读打开" 文件中写字符串时,
会发生错误而返回一个NULL值。
@fprintf 往文件中写格式化数据
int fprintf(FILE *fp,char *format,arg_list)
返回值
无。
@ fscanf 格式化读取文件中数据
fread 以二进制形式读取文件中的数据
int fread(void *buffer,unsigned sife,unsigned count,FILE *fp)
返回值
正常返回:实际读取数据块的个数,即count。
异常返回:如果文件中剩下的数据块个数少于参数中count指出的个数,或者发生了
错误,返回0值。此时可以用feof()和ferror()来判定到底出现了什么
情况。
@ fwrite 以二进制形式写数据到文件中去
int fwrite(void *buffer,unsigned sife,unsigned count,FILE *fp)
返回值
正常返回:实际输出数据块的个数,即count。
异常返回:返回0值,表示输出结束或发生了错误。
@getw 以二进制形式读取一个整数
int getw(FILE *fp)
返回值
正常返回:所读取整数的值。
异常返回:返回EOF,即-1。由于读取的整数值有可能是-1,所以必须用feof()或
ferror()来判断是到了文件结束,还是出现了一个出错。
@ putw 以二进制形式存贮一个整数
int putw(int n,FILE *fp)
返回值
正常返回:所输出的整数值。
异常返回:返回EOF,即-1。由于输出的整数值有可能是-1,所以必须用feof()或
ferror()来判断是到了文件结束,还是出现了一个出错。
4、文件状态检查函数
@ feof 文件结束
int feof(FILE *fp)
返回值
0:假值,表示文件未结束。
1:真值,表示文件结束。
@ ferror 文件读/写出错
int ferror(FILE *fp)
返回值
0:假值,表示无错误。
1:真值,表示出错。
@ clearerr 清除文件错误标志
intclearerr(FILE *fp)
无返回值
5、文件定位函数
@ rewind 反绕
void rewind(FILE *fp)
无返回值
@fseek 随机定位
int fseek(FILE *fp,long offset,intbase)
返回值
正常返回:当前指针位置。
异常返回:-1,表示定位操作出错。
0 0
- C语言之文件操作
- C语言之文件操作
- C语言之文件操作
- C语言之文件操作
- c语言之文件操作
- C语言之文件操作
- c语言入门教程之 文件操作基本常识
- C语言文件操作之fgets()
- C语言修行之文件操作
- c语言之文件操作练习
- C语言复习之文件的操作
- C语言标准库之文件操作
- ----------------Linux下C语言之文件操作-----------------
- C语言文件操作之fgets()
- C语言文件操作之EOF解析
- C/C++语言文件操作之fgets
- 重温C语言之--文件操作
- C语言文件操作之fgets()
- ubuntu14.04,该如何分区安装(初学者或不用它作为生成环境使用)?
- ubuntu14.04 JDK 安装
- Xcode 7:无需99刀也能在真机上测试App
- 1011. A+B和C (15)
- chmod 改变当前目录下面所有文件及文件夹的权限
- C语言之文件操作
- NYOJ 75 日期计算
- 文章标题
- 最近看的篇文章,年过三十,感触很深
- 软件工程第三次作业
- easyui-Messager(消息窗口)源代码
- docker常用命令
- XHTML与CSS一些基本语法与编写习惯
- 关于Eclipse(64位)下aptana插件安装报错问题解决