文件操作(C语言)

在我们使用下面代码进行给n赋值时,在程序运行时n的值会一直在,但当程序结束时n的值也就随之被回收了,就如下面的代码:

那要怎么才能使n的值一直在呢,这时就要使用文件进行数据储存,文件可以将数据储存到硬盘上,进行持久化的保存。

那如何进行文件操作呢,在这之前先看一段我写的文件操作的代码:

这样就可以把c储存到文件中,就可以一直保存下来。那这是如何实现的呢,现在就告诉大家。

首先大家要知道文件的创建方法,也是上面我用红色框框出的第一段代码,这要如何理解呢,就是在进行文件操作时,首先需要有一个文件才能进行操作,这个文件我们可以直接用fopen函数来进行创建和打开,在这我们先了解一下fopen函数,它是在<stdlib.h>中才可以使用的,如下:

fopen函数需要两个参数,第一个参数是文件的地址,也就是文件名字(这里类比数组,数组名及是地址),那文件名字该如何取呢,现在告诉大家文件名的构成:

我们在书写代码时只需要红色框里的即可,就是文件名主干+文件后缀,文件后缀代表的是文件的类型,比如上面我写的  “data.txt”,这个后缀代表的就是文本的意思,所以我的内容就储存到文本当中了,文件名主干可以自己取,这不影响。

第二个参数就有点难以理解了,它是对文件的操作,比如读取文件和写文件,如下:

我们先只需要了解这两个即可,其他的可以等到以后学的更加深入了在了解,“r”代表的是读取文件,“w”代表的是写文件,两个字母分别代表的是read和write,这样可以更加简单的记下来。第二个参数就直接使用即可,要对文件进行什么操作就写什么即可。

当然fopen函数还会返回一个文件的指针,需要用FILE *类型的指针来接收,接收的这个地址为后面对文件的操作提供地址,在执行我写的那段代码中第二个红色框里的操作,需要刚才创建的文件返回的文件类型指针。

以上就是文件的创建,现在我来告诉大家如何对文件进行操作,先告诉大家如何写文件,首先要使用“w”,并且这里涉及三个函数,都是写文件,但是写的格式不同,如下:

1.fputc,也就是上面我使用的函数

它的第一个参数表示的是我要书写的一个字符,只能是一个字符,使用这个函数只能一个一个字符的书写。第二个参数就是刚才创建的文件所返回的文件指针。

2.fputs,后面为s,顾名思义它可以一次性写一串字符

第一个参数就是需要书写的字符串的首地址,第二个参数依然为刚才创建的文件所返回的文件指针。

3.fprintf,它的使用和printf的使用差不多,如下:

就是前面加上了一个文件创建所返回的文件指针,其他的参数都和printf相同。

以上三个函数就是写文件时需要使用的,我想你先在已经可以写一个文件了吧,正如一下代码,再来复习一下吧:

现在告诉大家如何读取这些数据,首先先要使用“r”,并且这里也涉及三个函数,我们来了解一下吧:

1.fgetc,它与fputc相对,一次只读一个字符

2.fgets,它与fputs相对,一次可以读取多个字符。

第一个参数表示把读取的数据放到一个地址里面,在使用这个函数之前我们可以先创建一个字符数组,然后把读到的字符放到这个数组中去,第二个参数num代表的是读取的字符个数,是自己规定的,但是有点特别的是,当写下num的时候,这个函数读取的是num-1个字节,第三个还是文件指针。看一下下面的例子,我相信你就会明白:

我们写了5个字符,它只读取了4个字符,这就是使用和特别之处。

3.fscanf,它是和fprintf所相对的

它的使用方法和scanf相同,不过前面加了一个文件指针的参数,看下面一段代码的使用方法:

它可以读取所有的数据并且放到arr数组中,这也是它和其他的读取函数不同的地方。

在读取完数据或者写完数据之后记得不要忘记关闭文件,它的操作很简单,如下代码:

用到了fclose函数,它和fopen是相对的,它只有一个参数也就是fopen所创建的文件所返回的文件地址。

总结一下:首先要用fopen函数来创建一个文件,接下来再选择对文件的操作,不论是都或者写的操作都行,然后再选择合适的函数来进行操作,最后不要忘记关闭文件就行。

ps:不要忘记对fopen函数返回的文件指针进行判断。

好了,说到这文件的简单读写操作就告诉大家了,相信肯定会有些难以理解,我一开始也是很难理解,但是只要多实践,多用就可以记住它们,相信大家一定会可以熟练使用这些函数的,还是有什么不理解的可以私信我或者在评论区留言,我来帮你解答!

  • 28
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值