我有如下数据格式
3360  2001     5   1750.5   1246.5  22.5  n    1775=1177-1316:1
3360  2001     5   1750.5   1246.5  22.5  n    1778=1177-1316:1
3360  2001     5   1750.5   1246.5  22.5  n    1781=1177-1316:1
3360  2001     5   1750.5   1246.5  22.5  n    1784=1177-1316:1
3360  2001     5   1750.5   1246.5  22.5  n    Type 1 = 1000 V
中间这是空的一行
   3360  2002     5   1749.5   1246.5  20.5  n    1775=1177-1316:1
3360  2002     5   1749.5   1246.5  20.5  n    1778=1177-1316:1
3360  2002     5   1749.5   1246.5  20.5  n    1781=1177-1316:1
3360  2002     5   1749.5   1246.5  20.5  n    1784=1177-1316:1
3360  2002     5   1749.5   1246.5  20.5  n    Type 1 = 1000 V 
中间是空行
3360  2003     5   1748.5   1246.5  19  n    1775=1177-1316:1
3360  2003     5   1748.5   1246.5  19  n    1778=1177-1316:1
3360  2003     5   1748.5   1246.5  19  n    1781=1177-1316:1
3360  2003     5   1748.5   1246.5  19  n    1784=1177-1316:1
3360  2003     5   1748.5   1246.5  19  n    Type 1 = 1000 V



很多这样的数据块

请问,我如何能将每个数据块中的第一行中的如:1775=1177-1316:1中的1775 
                                                                              和1177读出来,
                             每个数据块中的倒数第二行中的如:
     3360  2001     5   1750.5   1246.5  22.5  n    1784=1177-1316:1
    3360  2001     5   1750.5   1246.5  22.5  n    Type 1 = 1000 V
1784   1316读取出来啊?
用fscanf能实现吗?如何实现啊?多谢各位啦

 
1,我想要的是那个位置的数据,之前不知道具体是多少
2,我的想法是先找到
3360  2001     5   1750.5   1246.5  22.5  n    Type 1 = 1000 V

这行,然后使指针回到上一行,这样能找到我想要的行号,(因为每个数据块的行数不定的)但指针如何回到上一行?
3,我的是多个数据块,又如何重复找呀?

 以上问题可以用以下代码解决:
#include <stdio.h>
#include <string.h>
void main()
{
int num1,num2,num3,num4,flag1=;
char line1[]={},line2[]={};
FILE *fp=fopen("data.txt","r");
while (fgets(line1,sizeof(line1),fp))
{
if (strlen(line1)<)
{
flag1=;
}
if (!flag1 && strlen(line1)>)
{
sscanf(line1,"%*d %*d %*d %*f %*f %*f %*c %d=%d-%*d:%*d",&num1,&num2);
printf("num1 = %d num2= %d\n",num1,num2);
flag1=;
}
if (strstr(line1,"Type 1 = 1000 V")!=NULL)
{
sscanf(line2,"%*d %*d %*d %*f %*f %*f %*c %d=%*d-%d:%*d",&num3,&num4);
printf("num3 = %d num4= %d\n",num3,num4);
printf("\n");
}
strcpy(line2,line1);
}
}

关于C语言读取多行数据的问题的更多相关文章

  1. C语言读取文件大量数据到数组

    针对.txt文档的大量有规律数据,譬如100行8列的数据将其读取到二维数组(矩阵)中,留作之后的数据处理. 改程序通过宏定义的方法来确定将要读取程序的行数和列数,将数据读取到二维数组data[100] ...

  2. 不要使用 reader.Peek() 去读取每行数据

    1.问题描述 使用SteamRead的Peek()和ReadLine()来读取流中的数据,如果数据行数太多,会读取不完整(后面有些数据就读不出来了). 比如: while (srResponseRea ...

  3. C++中文件的读取操作,如何读取多行数据,如何一个一个的读取数据

    练习8.1:编写函数.接受一个istream&参数,返回值类型也是istream&.此函数必须从给定流中读取数据,直至遇到文件结束标识时停止. #include <iostrea ...

  4. R语言读取matlab中数据

    1. 在matlab中将数据保存到*.mat 文件夹 save("data.mat","data","label")#将data和label ...

  5. R语言--读取文件(数据输入)

    1 数据的输入 1.1 键盘输入 首先新建一张空表: dat<-data.frame(age=numeric(0),gender=character(0),weight=numeric(0)) ...

  6. ADO.NET笔记——使用Connection连接数据库,使用Command对象的ExecuteReader()方法创建DataReader对象返回多行数据

    使用Connection连接数据库,使用DataReader访问数据库,并返回多行数据. 相关步骤: 需要引入两个命名空间 using System.Data; using System.Data.S ...

  7. Pandas_数据读取与存储数据(全面但不精炼)

    Pandas 读取和存储数据 目录 读取 csv数据 读取 txt数据 存储 csv 和 txt 文件 读取和存储 json数据 读取和存储 excel数据 一道练习题 参考 Numpy基础(全) P ...

  8. Pandas_数据读取与存储数据(精炼)

    # 一,读取 CSV 文件: # 文字解析函数: # pd.read_csv() 从文件中加载带分隔符的数据,默认分隔符为逗号 # pd.read_table() 从文件中加载带分隔符的数据,默认分隔 ...

  9. R语言学习笔记:读取前n行数据

    常规读取 一般我们读取文件时都会读取全部的文件然后再进行操作,因为R是基于内存进行计算的. data <- read.table("C:\\Users\\Hider\\Desktop\ ...

随机推荐

  1. Word2013对公式处理:样式、自动编号、交叉引用

    因快写毕业论文,专门研究了一下Word2013对公式的处理,有一点小心得,记在这里. 文章中公式展示的预期效果是:公式居中,尾端有编号,同时在文章中可以实现引用.实现该效果有很多方法,这里就说一种,其 ...

  2. Hark的数据结构与算法练习之简单选择排序

    /* * 简单选择排序 */ public class SimpleSort { public static void main(String[] args) { int[] arrayData = ...

  3. Spotlight on MySQL监控MySQL服务器

    第一步: 下载并安装mysql-connector-3.5x Spotlight on MySQL 连接mysql必须使用mysql-connector-3.5x,5.3.2版本我试了下不行,有兴趣可 ...

  4. login控件重载登陆方法

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  5. POJ1061 青蛙的约会(线性同余方程)

    线性同余方程$ ax \equiv b \pmod n$可以用扩展欧几里得算法求解. 这一题假设青蛙们跳t次后相遇,则可列方程: $$ Mt+X \equiv Nt+Y \pmod L$$ $$ (M ...

  6. [转]C++设计模式:Builder模式

    Builder模式要解决的问题是,当我们要创建很复杂的对象时,有时候需要将复杂对象的创建过程和这个对象的表示分离开来.由于在每一步的构造过程中可以映入不同参数,所以步骤相同但是最后的对象却不一样.也就 ...

  7. eclipse生成jar包

    第一:普通类导出jar包,我说的普通类就是指此类包含main方法,并且没有用到别的jar包. 1.在eclipse中选择你要导出的类或者package,右击,选择Export子选项: 2.在弹出的对话 ...

  8. object-c cocos2d-x 写程序时注意调试的技巧

    (1)写程序时最好在类的init函数中显示类名,表明现在在执行哪个类,样例代码 CCLOG(@"cocos2d: Using Director Type:%@", [self cl ...

  9. TYVJ P1002 谁拿了最多奖学金 Label:模拟 水

    背景 NOIP2005复赛提高组第一题 描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同:1)     院士奖学金,每人8000元,期末平均成绩高于80分( ...

  10. 【NOIP2003】传染病控制(-贪心/dfs)

    我自己yy了个贪心算法,在某oj 0msAC~.然后去wikioi提交,呵呵,原来是之前oj的数据太弱给我水过了,我晕. 我之前的想法是在这棵树上维护sum,然后按时间来割边,每一时刻割已经感染的人所 ...