關於C語言讀取多行數據的問題


我有如下數據格式
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=0;
 char line1[256]={0},line2[256]={0};
 FILE *fp=fopen("data.txt","r");
 while (fgets(line1,sizeof(line1),fp))
 {
  if (strlen(line1)<2)
  {
   flag1=0;
  }
  if (!flag1 && strlen(line1)>1)
  { 
   sscanf(line1,"%*d %*d %*d %*f %*f %*f %*c %d=%d-%*d:%*d",&num1,&num2);
   printf("num1 = %d num2= %d\n",num1,num2);
   flag1=1;
  }
  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);
 }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM