24小时热门版块排行榜    

查看: 1274  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料与化工一志愿南昌大学327求调剂推荐 +7 Ncdx123456 2026-03-13 8/400 2026-03-16 12:15 by karry wen
[考研] 308求调剂 +3 是Lupa啊 2026-03-16 3/150 2026-03-16 10:07 by 求调剂zz
[考研] 085600材料与化工 求调剂 +12 enenenhui 2026-03-13 13/650 2026-03-16 08:30 by Linda Hu
[考研] 中科院材料273求调剂 +3 yzydy 2026-03-15 3/150 2026-03-15 21:15 by ms629
[考研] 材料工程327求调剂 +3 xiaohe12w 2026-03-11 3/150 2026-03-14 20:20 by ms629
[考研] 289求调剂 +4 这么名字咋样 2026-03-14 6/300 2026-03-14 18:58 by userper
[考研] 一志愿哈工大材料324分求调剂 +5 闫旭东 2026-03-14 5/250 2026-03-14 14:53 by 木瓜膏
[考研] 308求调剂 +3 是Lupa啊 2026-03-10 3/150 2026-03-14 00:30 by JourneyLucky
[考研] 321求调剂 +3 CUcat 2026-03-10 3/150 2026-03-14 00:25 by JourneyLucky
[考研] 复试调剂 +9 Copy267 2026-03-10 9/450 2026-03-13 23:45 by userper
[考研] 337一志愿华南理工0805材料求调剂 +7 mysdl 2026-03-11 9/450 2026-03-13 22:43 by JourneyLucky
[考研] 26调剂/材料/英一数二/总分289/已过A区线 +6 步川酷紫123 2026-03-13 6/300 2026-03-13 21:59 by 星空星月
[考研] 一志愿西南交大,材料专硕317求调剂 +5 lx8568 2026-03-11 5/250 2026-03-13 21:43 by peike
[考研] 四川大学085601材料工程专硕 初试294求调剂 +4 祝我们好在冬天 2026-03-11 4/200 2026-03-13 21:39 by peike
[考研] 材料与化工085600调剂求老师收留 +9 jiaanl 2026-03-11 9/450 2026-03-13 20:22 by JourneyLucky
[考研] 求b区学校调剂 +3 周56 2026-03-11 3/150 2026-03-13 16:20 by JourneyLucky
[考研] 290求调剂 +7 ADT 2026-03-12 7/350 2026-03-13 15:17 by JourneyLucky
[考研] 求调剂 +3 程雨杭 2026-03-12 3/150 2026-03-13 15:06 by JourneyLucky
[考博] 2026年博士申请 +3 QwQwQW10 2026-03-11 3/150 2026-03-12 17:58 by gxch43
[考研] 279求调剂 +3 莫xiao 2026-03-10 4/200 2026-03-11 08:06 by 斩魂滴兔子!
信息提示
请填处理意见