window文件换行符自动改变的问题

本文探讨了使用C语言处理文件时遇到的问题,特别是如何正确处理不同操作系统下的换行符。文章介绍了使用fgets读取文件的基本方法,并针对Windows环境下文件换行符的特点,提供了去除 和 的具体策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近用到c读取文件,文件内容大概就是这样的。

读取文件的时候需要去掉每行的换行符。

114.114.114.114
time-ios.apple.com
app.migc.xiaomi.com
y.qq.com
dl.stream.qqmusic.qq.com

\n(0a)

\r\n(0d0a)

1、用fgets读取文件,因为fgets会读取换行符,去掉换行符以后发现还是不对,最后一个字符变成0d

2、网上查阅资料以后发现文件在windwos下创建,并以文件模式打开。

文件中的0A 都会变成0D0A,包括最后每行的换行符

这种情况下的话,只能用二进制流方式打开文件。

但是如果你在windwos下编辑过文件,文件的每行的换行符还是会变成0D0A,即时你用二进制方式读取文件。

这个时候你就需要判断两种情况

①如果每行最后一个字符是\n,去掉换行符

②如果每行最后两个字符是\r\n ,把这两个字符都去掉。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值