24小时热门版块排行榜    

查看: 1431  |  回复: 4

shugq_2009

新虫 (小有名气)

[交流] 【求助】怎么从一个文件中读取其中某些行的数据

原来我编的程序是提取一个文件中所有的数据,现在因为只需要读取其中的某行到某行,可以用程序实现吗?下面是我原来编的提取一个文件中数据的部分程序,望大侠赐教
FILE *fp;
if((fp=fopen("dump40.melt","r")==NULL)
  { printf("cannot open the file";
        exit(0);
        }
char ch;
ch=fgetc(fp);
while(ch!=EOF)
{
  if(ch=='\n')  n++;
  if(n==5)
      { for(i=0;i<6;i++)
        fscanf(fp,"%lf",&(*p).d[step]);
       }
  if(n==7)
        {
         for(i=0;i<256;i++)
{
         for(j=0;j<2;j++)
         fscanf(fp,"%d",&(*p).atome[step][j]);
         for(j=0;j<3;j++)
         fscanf(fp,"%lf",&(*p).pos[step][j]);
  }
step++;
n=0;}
ch=fgetc(fp);
}
fclose(fp);
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

_l_

新虫 (初入文坛)

你的程序不是已经可以读取想要读取的行了吗?
总是需要查找待读取行的位置的
2楼2010-10-25 18:54:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)


余泽成(金币+1):谢谢参与应助! 2010-10-26 00:27:38
shugq_2009(金币+2):谢谢 2010-10-27 23:13:00
虽然fseek可以跳过不想读的字节,但没法判断行。所以,在你的程序里稍加修改就能实现了。(没有直接的函数可以用)
CODE:
  if(ch=='\n')  n++;

这行是关键。你可以判断n的值,跳过不需要的行。如:
CODE:
if(ch=='\n') n++;
if(n

3楼2010-10-25 20:13:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shugq_2009

新虫 (小有名气)

引用回帖:
Originally posted by _l_ at 2010-10-25 18:54:35:
你的程序不是已经可以读取想要读取的行了吗?
总是需要查找待读取行的位置的

比如我想去第5行到100行的,然后继续取102行到500行的,然后取600行到1000行的,就是在一个文件中取,而且没有周期性的规律
4楼2010-10-27 23:15:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)


nono2009(金币+1):鼓励应助 2010-10-30 15:09:15
引用回帖:
Originally posted by shugq_2009 at 2010-10-27 23:15:48:

比如我想去第5行到100行的,然后继续取102行到500行的,然后取600行到1000行的,就是在一个文件中取,而且没有周期性的规律

楼主有这种需求的话,建议重新设计文件格式,使用结构化的文件存储,以便提高读写效率。
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
5楼2010-10-28 20:04:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 shugq_2009 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 让我中一个面上吧! +12 大萍1987 2026-08-20 15/750 2026-08-23 20:44 by 大萍1987
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 2JOx3r2CYEgw 2026-08-22 5/250 2026-08-23 19:22 by lXgU0RvNTDC9
[公派出国] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +4 2JOx3r2CYEgw 2026-08-21 7/350 2026-08-23 19:10 by lXgU0RvNTDC9
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 h4CP7TrQR8Lg 2026-08-22 5/250 2026-08-23 12:09 by LR9qGULyN2ew
[基金申请] 2026国自然函评费到账 +15 羊腰板 2026-08-21 16/800 2026-08-23 10:45 by process2012
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 2JOx3r2CYEgw 2026-08-22 5/250 2026-08-23 07:41 by OEbVnUOu01ol
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 DpSrDtM079iu 2026-08-22 5/250 2026-08-23 04:07 by OEbVnUOu01ol
[论文投稿] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 2JOx3r2CYEgw 2026-08-22 4/200 2026-08-23 04:04 by OEbVnUOu01ol
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 2JOx3r2CYEgw 2026-08-22 7/350 2026-08-23 03:43 by OEbVnUOu01ol
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 QTy3jDtz1uLt 2026-08-21 9/450 2026-08-23 03:04 by OEbVnUOu01ol
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 DpSrDtM079iu 2026-08-22 3/150 2026-08-23 00:55 by OEbVnUOu01ol
[基金申请] 93BebMhtakh前后11位开头都是大写 +7 且听虎啸 2026-08-17 8/400 2026-08-22 21:55 by 医学老男孩
[教师之家] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 2JOx3r2CYEgw 2026-08-21 4/200 2026-08-22 16:52 by sunzitan
[基金申请] 今天基金会出结果吗?20260819 +16 kkkl_v 2026-08-19 17/850 2026-08-22 16:12 by 阿布Abu
[基金申请] 放榜前的不淡定 40+4 snowwithsea 2026-08-19 14/700 2026-08-21 23:51 by cratir
[基金申请] 建议基金发布提前给出明确的时间点 +10 kulium 2026-08-21 13/650 2026-08-21 21:58 by alongwaytogo
[基金申请] 我面上完蛋了 +7 且听虎啸 2026-08-20 8/400 2026-08-21 12:31 by 酷酷墨镜
[基金申请] 基金啊基金 +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
[基金申请] 今天系统多次维护,明天很可能放榜! +10 zju2000 2026-08-16 11/550 2026-08-20 20:02 by cl479861084
[基金申请] 重要消息,中午系统在维护 +11 yuleib84 2026-08-18 12/600 2026-08-20 11:09 by xskun
信息提示
请填处理意见