fgets()中的\r\n问题

unixzyy 2008-04-28 06:45:59
FILE *fp=fopen("aa.txt","r");

fgets(buf,len,1,fp);

如果aa.txt文件中每行以\r\n结尾,则fgets()会不分行,一直读len个字符,如果每行只以\n结尾,则结果正确,请问我如何处理以\r\n为行结束的文件?
...全文
863 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
unixzyy 2008-05-07
  • 打赏
  • 举报
回复
我也这么想过,就是先遍历一次,找到\r后,继续读\r后面那个字符,如果是\n就不处理,如果不是\n就加个\n.
londy 2008-05-05
  • 打赏
  • 举报
回复
遍历一遍,遇到\r或\r\n改成\n
unixzyy 2008-05-05
  • 打赏
  • 举报
回复
向大家说声对不起,我的aa.txt文本每行结尾是\r,没有\n。所以出现上述情况。如果是\r\n结尾的可以正常读出来。现在是想问一下,fgets如何读一行以\r结尾的文本。
unixzyy 2008-05-05
  • 打赏
  • 举报
回复
1。fread()是不行的,我这个文本每行字符数不等的。只能一行一行读的。
2。fp=fopen("aa.txt","rt")也不行的。只是读出来后没有\r了。

高人继续。。。。。。。。。。。。。。
unixzyy 2008-05-04
  • 打赏
  • 举报
回复
没有人知道怎么解决吗?各位帮忙呀。。。。。。。。。。。。。。
BCBPLC 2008-05-04
  • 打赏
  • 举报
回复
FILE *fp=fopen("aa.txt","rt");
// 加个t,变成文本格式行不行?
jiangshx 2008-05-04
  • 打赏
  • 举报
回复
fp=fopen("aa.txt","rb")
fread(buf,len,1,fp)
unixzyy 2008-04-28
  • 打赏
  • 举报
回复
是fgets(buf,len,fp),用fopen("aa.txt","rb")也不行.

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧