| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 884 人关注过本帖
标题:如何写一个寻找文件某行的函数?
只看楼主 加入收藏
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:15 
如何写一个寻找文件某行的函数?
如题,我想写一个函数:char *search_line(FILE *fp,int line);
寻找一个字符文件fp的第line行,然后返回该行的首地址,但是,我看书上说,文件在内存中存储时是不存换行副的,
那如果不能拿换行副来做判断,如何知道读到下一行了?
*************还有个问题,我在这个自己写的函数中直接使用rewind()来让文件读写标志移到文件头,直接用ftell来获取文件读写标志
的当前位置,但DEV编译器说有错(前提是我在预处理文件中写了#include<stdlib.h>)
搜索更多相关主题的帖子: include 编译器 如何 
2014-10-10 10:19
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
函数原型设计就错了,整个思路也不对,显然很多基本概念不清。

授人以渔,不授人以鱼。
2014-10-10 10:32
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
能够返回文件某行的物理偏移地址

DO IT YOURSELF !
2014-10-10 10:38
sidooh
Rank: 4
等 级:业余侠客
帖 子:121
专家分:265
注 册:2009-6-26
收藏
得分:5 
"a\n"这个字符串就是在内存里, 换行符肯定是存的
2014-10-11 12:51
stop1204
Rank: 9Rank: 9Rank: 9
来 自:福建省
等 级:贵宾
威 望:22
帖 子:295
专家分:1151
注 册:2013-9-8
收藏
得分:5 
可以用换行符来判断.
内存中是不存在换行符.你没理解.
在内存中的代码你看到的话应该是 10    -- 换行符的ascii码

--------------------------
你使用rewind()的源文件里面没有stdlib.b?
然后是关联了预处理文件?   ---那在两边任何一个地方加上去都行

hl928452957@gmail点com

2014-10-11 15:59
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
收藏
得分:0 
回复 5 楼 stop1204
有所收获,感谢
2014-10-12 10:16
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
收藏
得分:0 
回复 2 楼 TonyDeng
为什么函数原型设计错了?你是说在文件流里不能这样吗?可是想起来没什么问题呀。
大神,求解。。。
2014-10-12 10:19
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用soulmate1023在2014-10-12 10:19:01的发言:

为什么函数原型设计错了?你是说在文件流里不能这样吗?可是想起来没什么问题呀。
大神,求解。。。

你返回的指针指向哪里?那个数据实体在哪里分配?很显然你是以为文件中的数据跟内存一样是可以任意指的。

授人以渔,不授人以鱼。
2014-10-12 10:26
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不要返回局部变量指向局部变量的指针,这是C/C++编程的基本原则。你设计的这个函数原型,所返回的必定是指向局部变量的指针,别无它途,所以说一开始设计就错了。

授人以渔,不授人以鱼。
2014-10-12 10:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
通常的文件处理并不需要用到rewind(),极力回避这点。

授人以渔,不授人以鱼。
2014-10-12 11:00
快速回复:如何写一个寻找文件某行的函数?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015695 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved