C语言文件操作

1第八章 文件v文件系统 概述v标准文件操作2、文件 文件是存储在外部存储介质上的信息的集合。每个文件有唯一的文件名(主名.后缀)来标识。 计算机实现按名对文件进行读、写等有关操作。广义上,操作系统将每一个与主机相联的输入输出 设备都看作是文件。(显示器、打印机是输出文件,键 盘是输入文件)。一、文件定义与分类文件系统 概述32、文件的分类 (1)按存储介质:磁盘文件、磁带文件。(2)按文件的内容:(从程序设计的角度看 )源程序、目标文件、可执行文件、数 据文件。(3)按文件的编码方式(存储形式):文本文件、二进制文件。4二、数据文件的存储形式1、字符文件(文本文件):每个字符用一个 ASCII码存储(即一个字符占一个字节)。 2、二进制文件:以数据在内存中的形式原样存于磁盘。如:一个短整数(short型),其二进制文件存储方式都是占个字节; 而字符文件存储方式所占字节数该数的数字个数。int型数 二进制文件 字符文件126 字节 字节1268 字节 字节5例如:整数1268文本文件形式1的ASCII码00110001 00110010 00110110 00111000二进制文件形式00000100 111101001268的二进制数2的ASCII码 6的ASCII码 8的ASCII码6三.标准文件系统、非标准文件系统程序数据区输出文件缓冲区输入输入文件缓冲区输出输入磁盘 内存非标准文件系统:不使用缓冲区的磁盘文件系统标准c 采用缓冲文件系统,其原理图如下:输出74.文件存取方式在C语言中,文件的存取有两种方式:(2)随机存取(1)顺序存取8标准文件操作一、 标准文件类型指针每个被使用的文件都在内存中开辟一个 区域,用来存放文件的有关信息。这些信息是保存在一个结构体类型的变量 中。该结构体类型是由系统定义的,取名为 FILE。1.文件类型指针概述9typedef struct short level;unsigned flags; char fd; unsigned char hild; short bsize; unsigned char *buffer; unsigned istemp;short token; FILE;FILE: 一个标 准的标 识符, 但不是 关键字10如 FILE *fp;fp是一个指向FILE类型结构体的指针变量 ,通过该结构体变量中的文件信息能够访问该文 件。如果有N个文件,一般应设N个指针变量, 使它们分别指向N个文件(确切地说,指向该 文件的信息结构体),以实现对文件的访问。FILE *指针变量标识符;2. 文件型指针变量的定义11标准文件操作的四个基本步骤:1. 文件类型指针的定义2. 打开标准文件3. 标准文件的读或写的操作4. 标准文件的关闭操作12打开文件对文件进行读或写关闭文件文件的操作步骤文件打开函数文件读写函数文件关闭函数定义文件类型指针指针定义13二. 标准文件的打开1. 打开文件的含义将文件信息从磁盘装入计算机内存,建立文件 的各种有关信息,并使文件指针指向该文件,即建 立文件类型指针与文件名之间的关联.2.文件的打开函数: fopenfp=fopen(文件名,使用文件方式);函数原型:FILE *fopen(char *filename,char *mode);14FILE类型指针-成功NULL -失败fopen( )函数的返回值应赋给一个FILE指 针变量, 否则,此函数的返回值就会丢失, 导致无法对此文件进行操作。例如: FILE *fp; fp=fopen(”A1”, ”r”);以上语句表示: 要打开名字为A1的文件,使用文件的方式为“读入 ”,fp指向A1文件。返回值:15文件打开函数的调用给编译系统的三个信息 :1. 需要打开的文件名;2. 使用文件的操作方式;3 .让哪一个指针变量指向被打开的文件。16”r” (只读) 为输入打开一个文本文件”w” (只写) 为输出打开一个文本文件”a” (追加) 向文本文件尾增加数据”rb” (只读) 为输入打开一个二进制文件”wb” (只写) 为输出打开一个二进制文件”ab” (追加) 向二进制文件尾增加数据 3. C语言文件操作方式r: read , w: write , a: append , b:binary ,+: 读写17”r+” (读写) 为读/写打开一个文本文件”w+” (读写) 为读/写建立一个新的文本文件”a+” (读写) 为读/写打开一个文本文件”rb+” (读写) 为读/写打开一个二进制文件”wb+” ( 读写) 为读/写建立一个新的二进制文件”ab+” ( 读写) 为读/写打开一个二进制文件C语言文件操作方式(续)r: read , w: write , a: append , b:binary ,+: 读写18(1 ) 用”r”方式打开的文件只能用于向计算机输入数 据,而且该文件应该已经存在; 4. 标准文件操作方式的说明(1-5)(2) 用”w”方式打开的文件只能用于向该文件写数 据,而不能用来向计算机输入。 如果不存在该文 件,则在打开时建立一个。 如果存在该文件,则 新写 入的数据将覆盖掉以前的数据。(3) 如果希望向文件末尾添加新的数据(不希望删 除原有数据),则应该用”a”方式打开。19(4) 用”r+”、 ”w+” 、 ”a+”方式打开的文件可以用来输入和输出数据。(5) 在程序开始运行时,系统自动打开三个标准 文件:标准输入(stdin)、标准输出(stdout)、标准 出错输出(stderr)。4. 标准文件操作方式的说明(1-5)20例:打开C盘根下的myfile.c文件,验证文件能否 正确打开. #include void main() FILE *fa;if(fa=fopen(”c:myfile.c”,”r”)=NULL) printf(“n Cannot open the file!”);exit(0); /*退出*/else printf(” n Open! ”);?提示:1. 该文件在磁盘上不存在/存 在时,比较运行结果。2. 将程序中的”r”改为”w” , 当该文件在磁盘上不存在/存 在时,比较运行结果。21三. 标准文件的关闭函数: fclose关闭文件指针fp所指的文件,释放相应的文件 信息区. 正常关闭文件时,函数返回值为0. 函数原型: int fclose(FILE *fp);功能:在使用完一个文件后应该关闭它,以防止它 再被误用。22函数原型:四 标准文件读写函数1. 读文件字符函数:fgetcfp是指向所读 文件指针变量int fgetc(FILE *fp) ;函数功能:从文件指针fp指向的文件当前位置(位置指 针)读出一个字符,然后文件位置指针自动后移, 指向文件中的下一个字符,返回值为读入的字符 .若遇到文件结束符,则返回结束符EOF(-1). 例: ch=fgetc(fp);23例: 将磁盘文件”mydata.txt”的信息读出并显 示到屏幕上.(假设文件已经存在,若不存在,可以 用记事本或其它文本编辑器编辑一个)#include void main() FILE *fp; char c; if (fp=fopen( ”mydata.txt” , ”r” )=NULL) printf(“n File notexist!”);exit(0); while(c=fgetc(fp)!=EOF)putchar( c );fclose(fp);24例11.3 编写一个程序,实现DOS中的type命令的功能 .#include void main(int argc,char *argv) FILE *fp; char c; if (argc void main() FILE *fp; char c; if (fp=fopen( ”data.dat” , ”w” )=NULL) printf(” n File cannot open! ”);exit(0); while(c=getchar( )!=”#” )fputc ( c,fp );fclose(fp);28例11.5 将文件filea.dat的内容复制到文件 fileb.dat中。 #include void main() FILE *f1,*f2; if (f1=fopen( ”filea.dat” , ”r” )=NULL) printf(” n File cannot open! ”);exit(0); if (f2=fopen( ”fileb.dat” , ”w” )=NULL) printf(” n File cannot creat! ”);exit(0); while(c=fgetc(f1 )!=EOF )fputc ( c,f2 );fclose(f1); fclose(f2);293. 读文件字符串函数:fgets从指针 fp指向的文件中读取 len 1 个字符, 把它送到由指针buf 指向的字符数组中。char * fgets ( char * buf , int len , FILE *fp) ;函数原型 :函数功能 :字符数组的长度应大于len,可存放len-1个字符,字 符数组的最后一个元素为0.若在读入len-1个字符前遇到换行符n或文件 结束符号EOF,立即结束读入操作.30例11.6 利用函数fgets,将文本文件filea.txt中的 内容全部读出并显示在屏幕上。 分析: (1)一般地,文本文件以行为单位,每行最多80个字符, 再加上一个行结束符号即换行符n,则每行至少需要81个 字节的存储空间。 (2)使用函数fgets读取字符串时,若在读入len-1个字符 完成之前遇到换行符n或文件结束符号EOF,立即结束读 入操作。无论读入的字符是否等于或小于len-1个,函数为读 入的字符串之后加一个0。因此,读入的字符(包括0 )只有len个。 (3)定义文件指针。 (4)以只读方式打开文件。 (5)当文件未结束时,反复读出字符串并输出。 (6)关闭文件。 31#include vo

c语言文件资源,C语言文件操作相关推荐

  1. 编程使用资源文件实现多语言页面(In Action)

    需求:我们的ASP.NET站点需要提供多语言支持,考虑到我们使用的是ASP.NET2.0,我们可以利用资源文件来实现. <?xml:namespace prefix = o ns = " ...

  2. 学生管理系统 C语言 动态链表 结构体 文件操作 设置密码 输入密码回显星号

    C语言 学生管理系统代码 实现功能 功能:学生管理系统设计,每个学生信息作为一条记录,包括姓名.学号.专业.  性别.年龄.   电话.家庭住址.还可以继续拓展 系统要求实现以下功能: 1.输入功能: ...

  3. Linux c语言 creat参数,C++_使用C语言操作文件的基本函数整理,C语言creat()函数:创建文件函 - phpStudy...

    使用C语言操作文件的基本函数整理 C语言creat()函数:创建文件函数 头文件: #include #include #include 定义函数: int creat(const char * pa ...

  4. C 语言编程 — 输入/输出与文件操作

    目录 文章目录 目录 前文列表 输入/输出 scanf() 和 printf() getchar() 和 putchar() 文件操作 打开文件 关闭文件 写入文件 读取文件 二进制 I/O 函数 前 ...

  5. 嵌入式学习在linux下使用c语言对文件进行打开、读写操作。_2000字干货!单片机进阶嵌入式Linux要怎么学习……...

    文章字数:2000 干货指数:⭐⭐⭐⭐⭐ 导读:这篇文章我们来一起简单梳理嵌入式Linux的一些知识,方便一些想跟我一样想要由单片机进阶到嵌入式Linux的朋友做一些参考学习. 现在随着嵌入式Linu ...

  6. C语言文件与数组之间输入输出操作

    C语言文件与数组之间输入输出操作 文件存到数组里面: #include<iostream> #include<fstream> #include<string> # ...

  7. c语言数据文件是,C语言数据文件操作.ppt

    C语言数据文件操作 第十一章 文件 11.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件处理方法 缓冲文件系统:高级文件系统,系统自动为正在使用的文件开辟内存缓冲区 ...

  8. 【C语言复习】C语言中的文件操作

    C语言中的文件操作 写在前面 文件操作 什么是文件 文件的分类 文件名 文件的操作 文件指针 文件的打开和关闭 文件的顺序读写 文件的随机读写 fseek ftell rewind feof 写在前面 ...

  9. c语言创建文件存放,C语言文件操作

    C语言文件操作 常见硬件设备所对应的文件 文件 硬件设备 stdin 标准输入文件,一般指键盘:scanf().getchar() 等函数默认从 stdin 获取输入. stdout 标准输出文件,一 ...

最新文章

  1. 笔记本电脑怎么清理灰尘_用了这么多年电脑,你该清理清理这个,将会又快又流畅...
  2. php.ini配置文件详解
  3. 手把手教你用Python玩转时序数据,从采样、预测到聚类
  4. 倒排索引统计与 Python 字典
  5. 如何使VS2008 调试网站的根目录和IIS调试的一致?
  6. codeforces 808 E. Selling Souvenirs (dp+二分+思维)
  7. c语言中数组作为形参
  8. Educational Codeforces Round 94 (Rated for Div. 2)
  9. java new对象 =null_在Java中将对象分配为null会影响垃圾回收吗?
  10. 二分的思想在算法中体现
  11. java编程思想2_《JAVA编程思想2》笔记
  12. C#笔记04 数组和循环
  13. 机器视觉核心算法——图像预处理
  14. 20145235 《Java程序设计》第6周学习总结
  15. 主板4线风扇原理分析
  16. 前端人不可错过的低代码神器,告别切图,一键成稿啦!
  17. shader篇-透明效果
  18. 用GetGlyphOutline搞字模
  19. Python实现多层感知器MLP(基于双月数据集)
  20. 测绘资质专业类别及乙级作业限制范围是什么?

热门文章

  1. GRS认证培训,GRS全球回收标准认证的步骤,GRS认证对工厂的好处
  2. pdf 生成文件工具类
  3. Unseen Westeros:权力的游戏展览
  4. dz3.2火车头 php接口,DiscuzX3.4论坛火车头采集器免登陆发布模块(附测试接口)!...
  5. 从IT圈“鄙视链”看前端开发有多难?
  6. 如何设计一个报表引擎
  7. CV领域Transformer这一篇就够了(原理详解+pytorch代码复现)
  8. 宅男福利 用Python爬取美女图片
  9. Android的APPT工具会优化PNG吗?
  10. 无领导小组讨论面试真题解析(八)—— 是什么影响了利润