我有如下数据格式
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语言读取多行数据的问题-LMLPHP

05-11 13:38