c语言 fgets函数 去除换行符_C语言之文件操作

本文介绍了C语言中的文件操作,包括打开和关闭文件、顺序读写文件,重点讲解了如何使用fgets函数去除换行符。还涉及了文本与二进制文件的区别,并探讨了标准输入、输出和错误处理。通过实例解释了读写字符、字符串以及错误处理的相关函数和技巧。
摘要由CSDN通过智能技术生成
来自公众号:TechZone

前些时候,我们学习的C语言程序都是由输入输出和算法组成的控制台程序。我们在终端上来输入我们提供的数据,然后程序也会通过终端来告诉我们最终运行的结果。

但是,可能有的同学已经观察到了,我们日常使用的别人开发的程序,大多数都是通过文件来提供数据的。比如一个Excel的报表,程序可以直接来分析里面的数据。再比如,一个TXT格式的电子书,程序可以直接分析有多少字、多少个章节,甚至还可以生成出一个目录来。

拥有这样能力的程序,是不是感觉功能强大了许多?这就要用到我们今天要讲到的内容——「文件操作」

关于文件

在我们比较熟悉的Windows系统下,文件类型的区分是用「扩展名」来进行的。但其实扩展名并不是指「文件格式」,它只是一个「门牌号」而已。至于它到底对不对,那系统就不知道了。可能有很多的新手,在遇到格式的问题的时候,会认为直接更改扩展名,就能实现格式转换。不瞒你们说,我小时候也有过这种想法。但是后来发现,不行。举个例子,现在有一个 MP3 的文件,要转成 AAC。这两个文件从编码上来讲,就是不一样的。MP3 只能用 MP3 的方式去读取,AAC 只能用 AAC 的方式去读取。如果你把扩展名直接改成 AAC,那么系统就被你骗了,就会用 AAC 的方式去读取实际还是 MP3 的文件,当然是不行了。

不同的扩展名,就对应了不同的读取方式。「EXE」 就代表 Windows 系统下的可执行二进制文件,「TXT」是纯文本文件,等等。

在 Linux 和 Unix 操作系统下,文件的定义就宽泛多了。不光软件,硬件也可以叫文件。也就是说,硬件实际上也是当做文件的方式来处理的。

在C语言中,文件一般分为两种,一种是二进制文件,就是我们编译出来的那个东西,我们是看不懂的;另一种是文本文件,也就是我们常说的源代码。

打开和关闭文件

我们要对一个文件进行操作,首先我们需要把文件打开,然后才能读或者写。对文件操作完成后,我们还要将文件关闭。

C语言中的打开文件使用fopen函数,通式如下:

fopen("文件路径", "模式")

如果打开文件成功,则会返回一个FILE结构的指针,通过这个指针,我们就可以对这个文件进行操作;如果打开文件失败,则会返回NULL。

下面是所有的模式:

模式 功能
"r" 以只读的形式打开文件,并从头开始读取
文件必须存在
"w" 以只写的形式打开文件,从头开始写入
若文件不存在,则创建一个文件
若文件存在,则全部被覆盖
"a" 以追加的形式打开文件,从文件末尾追加内容
若文件不存在,则创建一个新的文件
"r+" 以读写的形式打开文件,从头开始读写
文件必须存在,若原本有内容,则写入的部分被覆盖
"w+" 以读写的形式打开文件,从头开始读写
若文件不存在,则被创建
若文件存在,则被全部覆盖
"a+" 以读取和追加的形式打开文件
若文件不存在,则创建一个新的文件
读取是从头开始,追加是从末尾开始
"b" 表明打开的是二进制文件,使用时与上面的任意一个叠加
如:"wb", "r+b"

前面几个都好理解,只是最后一个,为啥要区分一个二进制出来呢&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值