【C 语言】文件的基本操作(上)

简介: 大家好!我是保护小周,本期为大家带来的是文件的基本操作(C),包括文件的打开,读取,写入,关闭等操作。

image.gif

大家好!我是保护小周,本期为大家带来的是文件的基本操作(C),包括文件的打开读取写入关闭等操作。

image.gif

正片开始!


一、 为什么使用文件

我们在程序中输入的数据一般会随着main()函数的结束而清空,因为数据这个时候是存放在内存中的,程序结束,内存回收。等我们下次再运行程序时又需要重新输入数据。如果我们想要将数据持续化存储,一般方法有:把数据存放在硬盘文件中,存放到数据库等方式。

image.gif

使用文件我们可以将数据直接存放在硬盘上,做到持久化保存数据。


二、什么是文件

程序设计当中我们谈到的文件有两种:程序文件、数据文件(从文件功能的角度分析)。

2.1 程序文件

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

2.2 数据文件

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

我们此次讨论数据文件

2.3 文件名

一个文件要有一个唯一的文件标识,以便用户识别和引用。

文件名包含3个部分 :文件路径+文件名+文件后缀

例如:D:\桌面\FILE\file.txt

2.4 文件类型

根据数据的类型,数据文件被称为文本文件或二进制文件。

如果数据以二进制的形式存储至外存,就是二进制文件。


三、文件的打开和关闭

3.1文件指针

缓冲文件系统中,"文件类型的指针"简称为"文件指针"。

每一个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息,这些信息保存在一个结构体变量中,该结构体类型是有系统申明,取名FILE。

这里不再做过多的介绍。

一般通过一个FILE的指针来维护FILE结构变量,这样使用非常方便。

image.gif

这里我们定义fp是一个指向FLIE类型数据的指针变量。通过文件指针变量能够找到与它相关联的文件。

3.2文件的打开和关闭

文件在读写之前需要打开文件,在程序结束之后需要关闭文件。

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

image.gif

image.gif

接下来为大家分享一下文件的使用方法及意义:

image.gif

在打开一个文件的时候,如果出错,fopen()将会返回一个空指针值NULL。我们可以利用这一性质来判断是否完成打开文件,并作出相应处理。

话不多说直接上代码!

image.gif

正常完成关闭文件操作时,fclost()函数的返回值为0;如果返回非零值则表示有错误发生。


四、文件的顺序读写

4.1 读字符函数 fgetc()

fgetc()函数的功能是从指定的文件中读一个字符,函数调用的形式为:字符变量=fgetc(文件指针);

我们可以将读取到的数据给到一个字符变量存储。

上代码:

image.gif

这样就实现了从文件中读取一个字符,那我们有没有办法用fgetc()函数读取一个文件里的全部字符呢? 当然有!我们可以利用循环访问文件里的每一个字符,那我们用什么来中止呢?这里就不得不提 EOF()函数。EOF是End Of File 的缩写,表示文件结束,表明已经到达文件的结尾。好了,经过我这么一说,大家脑海里是不是知道该怎么写了?

image.gif


4.2读字符函数 fgets()

前面我们用fgetc()函数成功从文件里面读取到了数据,但是却只能一次读取一个字符,如果面对要读取的数据繁多的情况,为了减少程序运行的时间复杂度,我们需要另一个请出它的"升版"fgets()

fgets()函数的功能是从指定的文件读取一个字符串到字符数组中。函数的调用形式为:fgets(字符数组名,n,文件指针);

其中 n 为一个正整数。表示从文件中读出的字符串不超过n-1个字符,在读入的最后一个字符后加上字符串结束标志'0',说通俗易懂点就是读多少?

image.gif

好了我们已经认识了两种读取数据的函数,现在让我们学习两种它们俩的好哥们!


4.3 写字符函数fputc()

fputc()函数的功能是把一个字符写入指定的文件中,函数的调用形式为:fputc(字符量,文件指针);

image.gif编辑

这个语句的意思就是把字符a写入fp所指向的文件中。

对于使用fputc()函数有几点需要大家注意:

1.当用写(w)或者读写(r+)的方式打开文件时如果我们使用该函数写入数据,就会清除文件里原有的数据,写字符需要从文件首开始。如果需要保留原数据,可以用追加(a)来打开文件。

2.每写入一个字符,文件内部位置指针向后移动一个字节。

3.fputc()函数有一个返回值,如果写入成功则返回写入的字符,否则返回EOF,我们可以用这个判断是否写入成功。

我们来尝试一下用fputc()函数写入数据,由fgetc()函数从文件中读取:

在此之前我们需要普及一个文件指针定位函数,rewind(指向文件的指针);

rewind()将文件指针以文件开头为基准向后移动一个单位;这样文件指针就可以从文件首开始处理数据。

Let's go!

image.gif

以上就是fputc()函数的基本用法;好了既然有fputc()函数那怎么少的了fputs()函数呢?


4.3 写字符串函数fputs()

fputs()函数的功能是向指定的文件写入一个字符串,fputs()函数的调用形式为:fputs(字符串,文件指针);

其中字符串可以是字符常量,也可以是字符数组名,或者指针变量。

image.gif编辑

再使用fgetc()和fgets()将数据读出!

说干就干,来啊,上代码!

image.gif编辑image.gif


以上便是读写字符数据的函数的基本应用。

通过对文件基本操作(上)的学习,我们应该对文件的基本读写有了一个初步的了解

接下来我们要学习的是格式化读写函数:

fscanf(); fprintf();

以及数据块读写函数:

fread(); 二进制输入,fwrite();二进制输出;

还有sscanf();  sprintf();

路人:“等等,你什么意思?”

image.gif

还没看过瘾是吧,更多彩敬请期待:文件基本操作(下)*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

感谢每一个观看本篇文章的朋友,更多精彩敬请期待:保护小周ღ  *★,°*:.☆( ̄▽ ̄)/$:*.°★*

遇见了你,所有的星星都落在了我的头上image.gif

相关文章
|
3天前
|
Linux C语言
C语言获取文件长度
C语言获取文件长度
|
3天前
|
编译器 开发工具 C语言
【C语言】第一回(源(.c)文件怎么生成可执程序(.exe)文件)
【C语言】第一回(源(.c)文件怎么生成可执程序(.exe)文件)
|
3天前
|
安全 算法 程序员
【C/C++ 文件操作】深入理解C语言中的文件锁定机制
【C/C++ 文件操作】深入理解C语言中的文件锁定机制
49 0
|
3天前
|
C语言
C语言对文件的输入输出
C语言对文件的输入输出
18 0
C4.
|
3天前
|
存储 程序员 数据库
C语言顺序读写数据文件
C语言顺序读写数据文件
C4.
21 0
|
3天前
|
存储 C语言
C语言-打开与关闭文件
C语言-打开与关闭文件
32 1
|
3天前
|
存储 C语言 C++
【C语言】文件与文件操作
前言:我们通过学习的技术可以完成计算与字符串处理,但程序结束之后就都消失了,这样岂不可惜。我们通过文件与数据持久化保存相关的基础知识。
11 0
|
3天前
|
存储 C语言
C语言进阶第十课 --------文件的操作-2
C语言进阶第十课 --------文件的操作
|
3天前
|
存储 编译器 C语言
C语言进阶第十课 --------文件的操作-1
C语言进阶第十课 --------文件的操作
|
3天前
|
存储 自然语言处理 编译器
C语言:编译和链接(从.c文件到输出结果的过程)
C语言:编译和链接(从.c文件到输出结果的过程)