00:00
同学们,我们再来看一下在C语言中如何读取文件,那读取文件呢,第一个方法叫f get c这个呢是。这个函数从AP所指向的输入文件中读取一个字符,返回的是读取的字符。那么还有一个比较常用的呢,是f gets。F呢?它是从FP所指向的输入流中读取N减一个字符。对,这N减一个字符呢,是由你这一个N所指定的,它会把读取的字符串复制到这个缓冲区buffer里面去,并且在最后呢加一个nor字符表示终止。那如果说这个函数在读取到最后一个字符之前遇到一个换行或者是文件的末尾时,则会返回读取到字符也包含这个换行符。各位同学,那现在呢,我们就来使用这些相关的这些函数来读取一个文件,来看看读取文件是怎么操作的,好吧,那现在呢,打开我们的VS这个我们来玩一把。
01:10
同学们,我们来给大家做一个小小演示哈。那现在呢,我们先写一个文件,叫file。DEMO0几呢,零五了,这是第五一个文件。我们把这个后缀进行一个修改,大家跟上我的思路。首先呢,我们要引入include std。然后呢?一个主函数,在这个主函数里边,我们先来创建,创建一个文件指针。没问题吧,那文件指针前面我们已经用过一次了,这里就直接用了FP,注意是个指针哈,心等于空,默认给他一个空指针没问题,那现在呢,我们再去定义定义一个缓冲区。
02:03
缓冲区,缓冲区将来的作用呢?是用来读取字符的,那就写个差八分。那多大呢?咱们写稍微大一点,1024哈,1024。好,这个也写好了功能,现在我们打开一个文件,打开文件。好,打开这个文件呢,我们写一个文件吧,比如说我们在D盘。我们打开地地盘。在D盘里面呢,我们自己创建一个文件哈,随便。这个文件,比如说是TEST200。那在这里面呢,我们写上两句话,我们随便写两句话啊,Hello word1回车,Hello word2问题吧,我把它保存起来。那么保存起来过后呢,我们现在准备把它读取起来,好先打开这个文件,打开,当然我们前面已经学过了,叫F什么呀?Open。F open,那么f open呢?我们先指向这个文件。
03:05
D盘哪里呢?TEST200没问题吧,TXT,然后打开的形式,我们又用读取的方式来打,就R。因为我们只是读嘛,那读的话呢,我们用先用第一个方法啊,方法一。方法一,我们用哪一个呢?FSCF是不是前面我们讲过FSCF也是可以去读取文件里面内容的IP。读的时候呢,我们用百分号S从哪里读,从诶从呃从这读到这个buffer里面去。这个函数的作用是什么呀?就是从FP这个所指向的文件里面读一行,读一行到这个buffer里面去,明白这意思吧,好,读一下同学们,那读完了功能我们输出一下,输出输出很简单,Spring f走一个走起来,我们这样子读,我们输出啊,百分之S 2%S呢,我们换一行给他。
04:01
来输出这个buffer。因为我的内容呢,已然读取到buffer里面去了,所以说我直接这样输出,输出完了之后我们换行,我们来在这输出一下内容哈,来同学们看一下,如果不出什么意外的话呢,我们应该能够读取到TEST200里面的第一行。没问题吧,我现在来给大家运行一下看效果。运行起来,运行起来,我过后呢,我们看第一行,Hello hello word1应该能够显示出来。运行。好同学,看,Hello word一出来了,那问题来了,你现在只读取到一行太麻烦了,我们能不能把整个都读取到八点和一起读取到呢?可以,我们用方法二来完成。那同学们看方法二。方法二,干什么呢?该演示一下,读取整个文件。我们来演示读取,对,读取整个文件没有问题吧,同学们。
05:05
那么怎么来读取整个文件呢?我们用这个方法来玩,其中有个方法叫F盖,这个F盖茨呢,它可以读取一行。如果说最后我们发现有文件末尾它可以结束,那这个时候呢,我们来写一下这个方法怎么读取哈,嗯,来给大家演示一下吧,先写第一句话,F,盖茨。然后呢,8UFF份我要读的是8UFF分,读到8UFF份里面去一次,我读1024,但实际上他读1024减一个对不对,然后呢,我要读的是这个FP,读到FP里面去没问题,同学们是不是啊,没有好,现在呢,我输出。只有一个,先来看一下我这时候读取到什么内容了好不好buffer。各位这个这个地方呢,实际上我是从FP说指向的文件里面,最多读取1024个到buffer里面去,当然了,如果你一行不足1024,那就读取整行,那各位同学我跟大家运行一下看效果。
06:09
同学们看效果。那这时我们看到输出的效果是不是?看,只有Hollywood吧。Hello word没有读取到整个文件,那怎么办呢?我们这边使用一个while循环来处理就可以了,同学们,While循环怎么做呢?我给他演示一下while。包起来。包起来,如果大家看啊,如果它不等于一个no。没问题,我就反复的读,就这一句话。这句话的意思呢?我给大家演示一下说明。就是如果。如果什么呢?如果没这个,如果读取到哦,就一直循环读取吧,循环读取AP指向的文件内容。
07:00
内容如果如果读取到,如果读到,读到什么呢?读到这个no就结束。就结束,好,同学们看,现在呢,我把这个写完了哈,那最后我们是不是应该还要关闭一下文件,关闭文件是不是刚才少写了一句话呀,APP close FP。那同学们,我们再来运行,看看此时此刻能不能把两句话都读取进来呢?来玩一把。我们看一下两句话是不是都读取到了哈,一个HELLO11个hello都读取到了,两行都读取到,那为了看看这个叫正正不正确,干脆这是我们狠一点,我们把这个文件内容整体读取过来,这不是有很多内容吗?对吧。好,我把这里面的内容。来给大家演示一下。我把这一个内容全部粘贴复制到我们的这个文件中,这个文件就比较长一点了吧。
08:01
是不是比较大,这个文件我想呢,诶,我想用刚才那个读取整个文件的方法,看看能不能把整个文件读取出来,并显示到我们的这一个界面中,好来看一看,现在我们读取什么呢?读取整个文件了。好,我给大家运行一下,看看能不能显示出来轴运行。这个因为文件比较大了,所以说就能验证我们代码有没有毛病。读取一下。跑起来好,同学们可以看到啊,同学们可以看到,应该是没有问题的看。没有毛病吧,整个这整个这个语句,包括我们的中文,包括我们的这个注释,他都读取到位了。是不是打印到我们整个这个界面了,没有问题啊,回撤退出,所以说我们要读取整个文件呢,可以用if gas配合一循环判断是否到空,然后就结束,这就是我们读取文件的一个操作,经常用的呢就是FS。
09:01
那这里我在讲完这个代码功能,有一点我要提醒大家,在上次课呢,我忘了提醒大家的地方就这。这点我要再重新提醒一下,就是同学们还记不记得我曾经说过,当我们往文件把一个像一个文件里面写内容过后呢,一定要关闭文件,如果不关闭文件的话,注意听我们的内容。我们的内容,内容没有保存到保存。保存到文件中。这一点请大家一定要小心哈。如果不关闭。如果不关闭我们的内容没有保存的文件中,那你就白干了,是不是这样子?大家看,我给大家演示一下,我们先把这个test的100清空。我们先把这个test的100清空。好,我先把它清空了啊,清空了大家看,清空了过后呢,我现在往里面写内容,但是我故意不关闭,大家看我不关闭文件。
10:06
按理说我们这边输入的你好北京和你好上海应该能写进去,但是因为你忘了关闭文件,后果是什么呢?后果就是文件没有真正的写入,好,这样子我把这边先注销一下,因为我们只能有一个入口函数运行。大家我我讲这个就是要引起大家重视好。那运行完了过后,我们看看内容有没有写进去。好,他说已经写进去了,然后我们打开这个TEST100,你看空空如也,空空如也,那么这时我们打开这个f close,我们再执行一下,看看这次能不能把两句话打进去,或者说写入我们的文件。我们再来验证一下好不好?各位朋友。好的,他这次他说又完成了,我们相信他一次打开,我们发现这次是真的写进去了,因此同学们一定要注意,就是咱们一定要在写操作完文件过后一定要关闭啊,千万不要忘了关了,忘了关了过后你这个白干了,明白。
11:13
好,同学们,那现在关于这一个文件的,就是我们讲的文件的读取,还有这个文件的一个写入呢,我们就讲完,我们把内容梳理一下,前面我们已经梳理到哪里了呀,我们说写入文件已已经梳理完毕了,我们再把读取文件给大家板书到这里来。读取文件,走起来。读取文件。那么读取文件呢,我们重点就是说,呃,用了这么F这个函数来玩的对吧,配合一个Y循环搞定了。对不对,好,我把这个标成一个呃,蓝色的字体。加粗。对不对,好,这是一个。好,然后这边呢,也把它加粗好可以了,那代码呢,我也给它写过来好吧,代码具体的代码写到这来。
12:07
诶,这个地方我重新来标一下号吧。不然的话,这个看起来很很怪。标一个号,这边呢,我们也标一个号好吧。编一个号好,最后代码演示,代代码演示。好,我把代码呢给大家梳理到这边来,就是我们写的这段代码是不是这个。尤其是要小心这个Y循环,为什么要判断一个不等于空号,因为它不等于空,它就可以继续读取,如果等于空,它就退出了。好的,我把代码呢板输到笔记中去。好的,同学们,那关于我们这一个文件的读取,就给大家讲解到这里,大家一定要掌握这讲我们就说到这。
我来说两句