免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: cyg19860205
打印 上一主题 下一主题

[C] 怎样实现按行读取文件? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-05-20 20:39 |只看该作者

fgets循环

while(1)
        {
                memset(sLine,0,12;
                fgets(sLine,128,fp);
                if(feof(fp)) break;
                /*做你的判断*/
        }

论坛徽章:
0
12 [报告]
发表于 2009-05-20 20:48 |只看该作者
原帖由 ge-hw 于 2009-5-20 20:39 发表
while(1)
        {
                memset(sLine,0,12;
                fgets(sLine,128,fp);
                if(feof(fp)) break;
                /*做你的判断*/
        }

定这个办法

论坛徽章:
0
13 [报告]
发表于 2009-05-20 22:44 |只看该作者
fsanf("%s",fp);
这个没问题,不会就看fsanf就可以了

论坛徽章:
0
14 [报告]
发表于 2009-05-21 11:06 |只看该作者
原帖由 ge-hw 于 2009-5-20 20:39 发表
while(1)
        {
                memset(sLine,0,12;
                fgets(sLine,128,fp);
                if(feof(fp)) break;
                /*做你的判断*/
        }



我用这个方法,我的理解是 初始化一段内存空间,从文件中读取一行数据写入内存空间(我的理解对吗?)

程序出来总是说有段错误

我还有一个疑问?文件里面的路径都是以“\n”换行结束的  这样的话为什么还要用fgets呢?

论坛徽章:
0
15 [报告]
发表于 2009-05-21 11:25 |只看该作者
You can use 'sscanf' with format "%s\n".
It maybe some like the fgets.

论坛徽章:
0
16 [报告]
发表于 2009-05-21 15:08 |只看该作者
gets,然后文件指针会自动移动

论坛徽章:
0
17 [报告]
发表于 2009-05-21 15:33 |只看该作者
你要不嫌麻烦的话就把整个文件读出来然后再根据'\n'分割。

论坛徽章:
0
18 [报告]
发表于 2009-05-21 19:19 |只看该作者
看看C入门书吧。最前面的代码例子,记得是求白字符个数、单词个数等,把它改一下,就可以了。这个最好自己搞出来。学会了,就可以编一大堆程序,可以统称为过滤器。UNIX上有许多实用工具,其中一部分就是这类程序。

论坛徽章:
0
19 [报告]
发表于 2009-05-22 10:58 |只看该作者
弱弱地回复一下,直接用fgets()不就可以读取一行了吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP