《c语言从入门到精通》看书笔记——第14章 文件
来源:互联网 发布:淘宝网电器城 编辑:程序博客网 时间:2024/06/12 19:26
1、文件的基本操作
(1)文件指针
文件指针是指向文件有关信息的指针,这些信息包含文件名,状态,和当前位置,他们保存在一个结构体变量中。在使用文件时需要在内存中为其分配空间,用以存放文件的基本信息。该文件是由系统定义的,C语言规定该类型为FILE型,声明如下:
typedef struct
{
short level;
unsigned flags;
char fd;
unsigned char hold;
short bsize;
unsigned char *buffer;
unsigned ar *curp;
unsigned istemp;
short token;
}FILE;
在编写程序时可以直接定义上面的FILE类型来定义变量,但不必全部写出结构中的内容,只需要写成:
FILE *fp;
fp是一个指向FILE类型的指针变量。
(2)文件的打开
fopen函数用以打开一个文件,打开文件的操作就是创建一个流。fopen函数原型在stdio.h中,调用形式如下:
FILE *fp;
fp=fopen(文件名,使用文件方式);
fopen函数打开文件成功,则返回一个有确定指向的FILE类型指针;若打开失败,则返回NULL。
(3)文件的关闭
fcose函数用以关闭文件,原型在stdio.h中,调用的一般形式为:
fclose(文件指针);
例如:fclose(fp);
fclose函数带回一个返回值,当正常完成关闭文件操作时,fclose函数返回一个0,否则返回EOF。
2、文件的读写
(1)fputc函数
ch=fputc(ch,fp);
该函数的作用是把一个字符写到磁盘文件(fp所指向的文件)中去。其中ch是要输出的字符,它可以是字符常量也可以是字符变量。fp是文件指针变量。如果输出成功,则返回值就是输出的字符,否则返回EOF。
(2)fgetc函数
ch=fgetc(fp);
该函数的作用是从指定的文件(fp指向的文件)读入一个字符赋给ch。需要注意的是,该文件必须是以读或读写的方式打开。当文件遇到文件结束符时将返回结束标志EOF。
(3)fputs函数
fputs(字符串,文件指针)
该函数的作用是向指定的文件写入一个字符串,其中字符串可以使字符串常量,也可以是字符数组名、指针或变量。
(4)fgets函数
fgets(字符数组名,n,文件指针);
该函数的作用是从指定的文件中读一个字符串到字符数组中。n表示所得到的字符串中字符的个数(包含“\0”)。
(5)fprintf函数:读磁盘文件
ch=fprintf(文件类型指针,格式字符串,输出列表);
例如:fprintf(fp,"%d",i);
他的作用是将整型变量i的值以“%d”的格式输出到fp指定的文件中。
(6)fscanf函数:写入磁盘文件
fscanf(文件类型指针,格式字符串,输入列表);
例如:fscanf(fp,"%d",&i);
他的作用是读入fp所指向的文件中的i的值。
(7)fread和fwrite函数:整块读写
fread(buffer,size,count,fp);
该函数的作用是从fp所指的文件黄总读入count次,每次读size字节,如如的信息存入buffer地址中。
fwrite(buffer,size,count,fp);
该函数的作用是将buffer地址开始的信息输出count次,每次写size字节DOAfp指定的文件中。
3、文件的定位
(1)fseek函数
借助缓冲型I/O系统中的fseek函数可以完成随机读写操作
fseek(文件类型指针,位移量,起始点);
该函数的作用是移动文件内部位置指针。其中,“文件类型指针”指向被移动的文件;“位移量”表示移动的字节数,要求位移量是long型数据,以便在文件长度大于64kb时不会出错。“起始点”有三种。如下:
起始点
起始点表示符号数字表示文件首SEEK - SET0文件当前位置SEEK - CUR1文件末尾SEEK - END2 例如:fseek(fp,-20L,1);
(2)rewind函数
int rewind(文件类型指针)
该函数的作用是使位置指针重新返回文件的开头,该函数没有返回值。
(3)ftell函数
long ftell(文件类型指针)
该函数的作用是得到流式文件中的当前位置,用相对于文件开头的位移量来表示。当返回值是-1L时,表示出错。
0 0
- 《c语言从入门到精通》看书笔记——第14章 文件
- 《c语言从入门到精通》看书笔记——第2章 算法
- 《c语言从入门到精通》看书笔记——第3章 数据类型
- 《c语言从入门到精通》看书笔记——第6章 选择结构程序设计
- 《c语言从入门到精通》看书笔记——第7章 循环控制
- 《c语言从入门到精通》看书笔记——第8章 数组
- 《c语言从入门到精通》看书笔记——第9章 函数
- 《c语言从入门到精通》看书笔记——第10章 指针
- 《c语言从入门到精通》看书笔记——第12章 位运算
- 《c语言从入门到精通》看书笔记——第13章 预处理
- 《c语言从入门到精通》看书笔记——第15章 存储管理
- 《c语言从入门到精通》看书笔记——第1章 C语言的概述
- 《c语言从入门到精通》看书笔记——第4章 运算符与表达式
- 《c语言从入门到精通》看书笔记——第5章 常用的数据输入输出函数
- 《c语言从入门到精通》看书笔记——第11章 结构体和共用体
- 《c语言从入门到精通》看书笔记——第16章 网络套接字编程(上)——网络
- 《c语言从入门到精通》看书笔记——第16章 网络套接字编程(下)——套接字
- C语言从入门到精通笔记
- Spring代理方式2
- Java中matches()方法声明
- 南大软院大神养成计划-第五天
- QTimeLine学习
- 王学岗属性动画上(七)----------AnimatorSet动画集合
- 《c语言从入门到精通》看书笔记——第14章 文件
- poj 1789
- php中商品无限极分类
- 欢迎使用CSDN-markdown编辑器
- 06-图1-列出连通集
- mongodb--基本操作
- 【Leetcode】Invert Binary Tree
- UI 第九天 UITableView
- Mac OS X版本历史