24小时热门版块排行榜    

查看: 1430  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 h4CP7TrQR8Lg 2026-08-22 3/150 2026-08-23 16:30 by lXgU0RvNTDC9
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 DpSrDtM079iu 2026-08-22 4/200 2026-08-23 15:30 by KM5EcsNQRBPn
[博后之家] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 2JOx3r2CYEgw 2026-08-22 5/250 2026-08-23 15:18 by KM5EcsNQRBPn
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 2JOx3r2CYEgw 2026-08-22 4/200 2026-08-23 14:57 by KM5EcsNQRBPn
[公派出国] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 2JOx3r2CYEgw 2026-08-21 6/300 2026-08-23 14:45 by KM5EcsNQRBPn
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +3 process2012 2026-08-23 4/200 2026-08-23 12:54 by huixian257
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 2JOx3r2CYEgw 2026-08-21 9/450 2026-08-23 10:44 by IXZuIJ2Q7OVy
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 DpSrDtM079iu 2026-08-22 5/250 2026-08-23 04:07 by OEbVnUOu01ol
[论文投稿] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 2JOx3r2CYEgw 2026-08-22 5/250 2026-08-23 03:52 by OEbVnUOu01ol
[论文投稿] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 2JOx3r2CYEgw 2026-08-22 6/300 2026-08-23 03:40 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一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 QTy3jDtz1uLt 2026-08-21 11/550 2026-08-23 02:55 by OEbVnUOu01ol
[基金申请] 93BebMhtakh前后11位开头都是大写 +7 且听虎啸 2026-08-17 8/400 2026-08-22 21:55 by 医学老男孩
[基金申请] 范进中举一文的中心思想 +3 zjuhero 2026-08-22 4/200 2026-08-22 20:02 by mycsru
[基金申请] 今天基金会出结果吗?20260819 +16 kkkl_v 2026-08-19 17/850 2026-08-22 16:12 by 阿布Abu
[基金申请] 时间戳今天,20号变了 +5 archvillain 2026-08-20 5/250 2026-08-22 06:12 by hui_daxiao
[基金申请] 建议基金发布提前给出明确的时间点 +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 酷酷墨镜
[基金申请] 应该是下周三26日公布了吧? +4 哈哈蛤? 2026-08-21 4/200 2026-08-21 10:58 by Vivilian
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
信息提示
请填处理意见