C语言文件操作 - 基本操作|二进制文件|读取结束判定|文件缓冲区

1.为什么使用文件

在C语言中,文件操作是非常重要的,因为它允许程序与外部文件进行交互。

文件是储存在硬盘中的,也就是说即使程序终止,数据仍然存在。

通过文件操作,可以实现读取文件中的数据,将数据写入文件,创建新文件,删除文件,以及在文件中移动位置等等。

文件为同时程序提供了灵活性和功能性,它使程序可以处理各种类型的数据,如文本文件、图像文件、音频文件等。这些文件也可以供多个程序可以共享。例如,多个程序可以读取同一个配置文件,也可以将数据写入同一个日志文件。

2.文件是什么

文件是计算机系统中存储数据的基本单元。

在程序设计中,我们一般谈的文件有两种:程序文件、数据文件:

程序文件:

包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀 为.exe)。

数据文件:

文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内 容的文件。

这篇博客主要讨论的是数据文件,后面将介绍用C语言对数据文件的一些操作。

每个文件都有一个唯一的文件名用来标识它,

文件名通常由文件名前缀和文件扩展名组成。文件名前缀是文件名的主体部分,可以包含任何字符,但通常由字母、数字和下划线组成。文件扩展名是文件名后缀,通常由一个或多个点号后跟一个或多个字符组成,用于指示文件类型。例如,myfile.txt 是一个文本文件,image.jpg 是一个图像文件。

要注意,同一路径下文件名是唯一的,这是我们后面根据路径精准访问文件的基础。

3.文件的打开与关闭

3.1文件指针

C语言的文件指针是一种特殊的指针,它指向文件中的某个位置,并且可以在文件中移动,以便对文件进行各种操作,例如打开、关闭、读取、写入、定位等。

在C语言中,文件指针是通过 FILE 结构体类型来表示的。每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态和文件当前的位置等)。

不同的C编译器的FILE类型包含的内容不完全相同,但是大同小异。例如,这是Visual Studio中对文件类型的声明:

struct _iobuf {
        char *_ptr;
        int   _cnt;
        char *_base;
        int   _flag;
        int   _file;
        int   _charbuf;
        int   _bufsiz;
        char *_tmpfname;
       };
typedef struct _iobuf FILE;

每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息,下面我们可以创建一个FILE*的指针变量,它指向系统刚向我们创建的文件信息区(一个结构体变量)的起始位置:

FILE* pf;//文件指针变量

 对于同时打开多个文件的情况,一般建议使用多个文件指针来维护多个文件信息区。

3.2文件的打开与关闭

ANSIC 规定使用fopen函数来打开文件,fclose来关闭文件。

//打开文件
FILE* fopen(const char* filename, const char* mode);
//关闭文件
int fclose(FILE* stream);

其中,对于fopen中的mode,意思是文件的打开方式,大致有以下几种:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值