我有如下数据格式
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. android 制作自定义标题栏

    1.在AndroidManifest.xml设置主题 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 2.在l ...

  2. Android Bitmap详细介绍

    package com.testbitmapscale; import java.io.File; import java.io.FileInputStream; import java.io.Fil ...

  3. aggregateByKey

    def seq(a:Int, b:Int) : Int ={ math.max(a,b) } def comb(a:Int, b:Int) : Int ={ a + b } val data = sc ...

  4. Spring的profile属性

    使用示例 //注解方式 public class DataSourceConfig { @Bean @Profile("prod") public DataSource dataS ...

  5. http://blog.csdn.net/shangboerds/article/details/44175667

    http://blog.csdn.net/shangboerds/article/details/44175667

  6. HDU4057 Rescue the Rabbit(AC自动机+状压DP)

    题目大概是给几个DNA片段以及它们各自的权值,如果一个DNA包含某个片段那么它的价值就加上这个片段的权值,同时包含多个相同DNA片段也只加一次,问长度l的DNA可能的最大价值. 与HDU2825大同小 ...

  7. android 蓝牙设备监听广播

    蓝牙权限 <uses-permission android:name="android.permission.BLUETOOTH" /> 1.监听手机本身蓝牙状态的广播 ...

  8. POJ 1523 (割点+连通分量)

    题目链接:http://poj.org/problem?id=1523 题目大意:连通图,找图中割点,并计算切除该割点后,图中的连通分量个数. 解题思路: POJ的数据很弱. Tarjan法求割点. ...

  9. KMP算法(转载)

    转载http://blog.csdn.net/yutianzuijin/article/details/11954939 kmp算法又称“看毛片”算法,是一个效率非常高的字符串匹配算法.不过由于其难以 ...

  10. 【BZOJ】1074: [SCOI2007]折纸origami

    http://www.lydsy.com/JudgeOnline/problem.php?id=1074 题意:一开始有一个左上角是(0,100),右下角是(100,0)的纸片,现在可以沿有向直线折n ...