C语言:文件操作(二)

一、文件的打开和关闭

  在使用文件的过程中,C程序需要知道这个文件的各种信息,而文件的信息存在于一个结构体变量中,为了方便查找这些信息,需得知该结构体变量的指针,那么这些信息也就方便查找,于是,文件指针因运而生。

  文件的打开和关闭借助的是2个函数:

1、fopen()函数

FILE*fopen(const char *filename,const char *mode)
功能:打开文件
参数:要打开文件的文件名  打开方式
返回值:
打开成功:返回该文件的文件指针
打开失败:返回NULL

fopen()参数一:打开方式

  打开方式的选择取决于我们对文件即将要进行的操作(只读或只写,或者读和写等),它们具体的选择如下:

  接下来,我们重点学习"r"和“w”

  打开方式一:“r”——只读

  当选择打开方式为”r“,这个fopen()函数的具体作用为:为了输入数据,打开一个已经存在(请注意这个词)的文本文件(后缀为.txt),如果文件文件不存在,fopen()函数会出错,并返NULL

举例:

文件打开失败情况:

我创建了一个test.c文件,这个文件里面即我在vs2022中写的代码,如图:

  在这个test.c文件所在的目录中,没有我要打开的data,txt文件,按照”r“只读的规则,该程序会打印出来文件打开失败的内容。

看看运行结果:

大意为不存在该文件

 文件打开成功情况:

  相反,如果我在这个目录下加入一个data.txt 文件,则程序不会报错,这个文件也会被打开。

  新的目录如图:

看看运行结果:

打开方式二:"w"——只写:

  当选择打开方式为“w”,这个fopen()函数的具体作用为:为了写入数据,打开一个文本文件,如果文件不存在,则建立一个新的文件,并返回该文件的文件指针。

下面我以目录中不存在要打开的文本文件为例子:

以下为test.c文件所在的目录:

代码如下:

运行结果:

  文件被打开成功,说明该C程序自己创建了一个data.txt文件

fopen()参数二:文件名

  在文件操作(一)中已经给大家介绍过文件名,以上的例子中,被打开的文件都是在该test.c文件所处的目录当中,但是如果要打开在桌面的文件,那该怎么做?

  这里以打开方式为“r"为例:

这个要打开的data.txt文件已经被我拷贝到桌面来,同时test.c文件所在目录中没有该data.txt文件,

代码如图:

运行结果:

  文件打开失败,这是为什么?

  同样的操作,只是因为data.txt文件所在的位置不同,就产生了截然不同的结果。

这是因为,你输入的文件名如果不包含路径,系统只会在该test.c所在的目录中寻找文件,如果你要找到该目录以外的文件,就要在文件名中包含路径。

具体操作如下:

01.复制文件的位置

02.粘贴到文件名前面​​​​​​​​​​​​​​​​​​​​​

03.添加转义字符'\'

04.运行结果

  文件被打开成功

2.fclose()函数

int fclose(FILE *stream)
功能:关闭文件
参数:要关闭文件的文件指针

  当我们使用完文件不在使用时,就要把它关闭,就像我们喝汽水一样,要喝的时候打开瓶盖,喝一半不想喝了就可以把瓶盖拧上,对于文件的打开和关闭,也是如此。

例子如下:

int main()
{
//打开文件
FILE*ps=fopen("data.txt","r");
//判断是否打开成功
if(ps==NULL)
{
return 1;
}
//使用......
//关闭文件
fclose(ps);
ps=NULL;

return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值