C语言学习—文件

                                                                   文 件

文件的概念:所谓“文件”是指一组相关数据的有序集合。这个数据集有一个名称,即文件名。

②文件通常是驻留在外部介质(如磁盘)上的,在使用时才调入内存中来。

文件缓冲区的概念:1)文件缓冲区是内存中的一块区域,用于进行文件读写操作时数据的暂存。在计算机系统中,数据是从内存中的程序数据区到文件缓冲区暂存,当缓冲区放满后,数据才被整块送到外存储器上的文件中。

2)磁盘的存取单位是“块”。

3)设立缓冲区的目的:提高效率!  有文件缓冲区可以减少和磁盘打交道的次数。

④文件的打开与关闭:

(1)文件的打开 fopen()函数。调用形式: 文件指针名=fopen(文件名,打开文件方式)

eg:    FILE *fp;

           fp=fopen("file1","r");

其中:“文件指针名”必须是说明为FILE类型的指针变量。                  

          “打开方式”如下表所示:


(2)文件的关闭 fclose()函数。文件一旦使用完毕,应及时关闭,避免文件写数据时,未将缓冲区充满,因而未上传到磁盘上,造成数据的丢失。fclose()函数强制系统将缓冲区中的所有数据送到磁盘。

调用形式:fclose(文件指针)    eg:fclose(fp);


⑤文件顺序读写:

  1)读字符函数     fgetc()     

  调用形式:字符变量=fgetc(文件指针);  eg:ch=fgetc(fp); 意义:从fp指向的文件中读取一个字符 并送入ch变量中 。

  2)写字符函数     fputc()

  调用形式:fputc(字符量,文件指针);     eg:fputc('a',fp); 意义:把字符a写入fp所指向的文件中 。

  3)读字符串函数  fgets()        

  调用形式:fgets(字符数组名,n,文件指针)  eg:fgets(str,n,fp); 意义:从fp所指的文件中读出n-1个字符送入字符数组str中。

  4)写字符串函数  fputs()

  调用形式:fputs(字符串,文件指针)       eg:fputs("abcd",fp); 意义:把字符串“abcd”写入fp所指的文件之中。

  5)格式化读函数  fscanf()        /*fscanf函数与fprintf函数与scanf和printf函数功能相似,区别在于scanf和printf的读写对象

  6)格式化写函数  fprintf()          是盘和显示器,而fscanf和fprintf读写对象是磁盘文件。*/


⑥:文件的随机读写

 文件的顺序读写是指读写文件只能从头开始,但实际问题中,有时需要只需文件的某一指定部分。进而来到文件的随机读写。

1)文件定位

  为了准确控制文件中的读写位置,C语言为每个文件在打开操作时,在文件结构体中设有一个读写位置指针,这个指针指示着当前读写位置。在文件打开的初始状态,一般这个指针都指向文件的开始处(但若以追加的方式打开,是指向文件的末尾处),随着文件的读写,这个指针会自动移动。

移动文件内部指针的函数有两个:

rewind()函数    关于rewind()函数,详见我的另一篇博客《C语言中的rewind()函数

fseek()函数      调用形式:fseek(文件指针,位移量,起始点);

2)随机读写函数

fwrite()    调用形式: fwrite(buffer,size,count,fp);  意义:以buffer为首地址,连续n个size大小的数据块写入fp所指的文件中。

fread()     调用形式: fread(buffer,size,count,fp);

其中:buffer:是一个指针,是读入数据存放的内存起始地址。

          size:要读写的字节数,一般由含sizeof运算符的表达是给出。

          count:要进行读写多少个size字节的数据项。

 ·fwrite()和fread()函数在调用成功时,返回函数值为count(输入/输出数据项个数)的值,如果调用失败(输入/输出出错),则返回0值。

·利用fread()和fwrite()函数还可从二进制文件中读写结构体类型的数据

eg:  struct person

{

   char name[20];

   char sex;

   int age;

   float salary;

}teacher;

fwrite(&teacher,sizeof(struct person),1,fp);


小结:

1. C系统把文件当作一个“流”,按字节进行处理。

2. C文件按编码方式分为二进制文件和ASCII文件。

3. 文件可按字节,字符串,数据块为单位读写,文件也可按指定的格式进行读写。

4. 文件内部的位置指针可指示当前的读写位置,移动该指针可以对文件实现随机读写。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章: C语言概论 C语言的发展过程   C语言是在70年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C 语言标准,于一九八三年发表。通常称之为ANSI C。 当代最优秀的程序设计语言   早期的C语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。成为当代最优秀的程序设计语言之一。 C语言的特点   C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。 C语言版本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值