最近用到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 ,把这两个字符都去掉。