簡體   English   中英

C文件解析問題

[英]C File Parsing Issue

我有一個要讀取的文件,其格式為

3%6%1

5%3%0

4%9%2

我需要以某種格式保存每個行中的單獨字段,例如我想可以使用SOMETHING.num1 = 3,SOMETHING.num2 = 6,SOMETHING.num3 = 1來創建typedef SOMETHING

這是我到目前為止的內容:

#define BUF 128 
#define LINES 100 

char line[LINES][BUF];

FILE *input = NULL; 
int i = 0;
int total = 0;

input = fopen("input.txt", "r");
while(fgets(line[i], BUF, input)) 
{
  /* get rid of ending \n from fgets */
  line[i][strlen(line[i]) - 1] = '\0';
  i++;
}

total = i;

printf("ORIGINAL READ:\n");

for(i = 0; i < total; ++i)
{
  printf("%s\n", line[i]);
}

printf("\nPARSED:\n");

char  *token;
char parsed[LINES][BUF];

for(i=0; i<total; i++)
{
  token = strtok(line[i], "%");

  while(token != NULL)
  {
    strcpy(parsed[i],token);
    token = strtok(NULL, "%");
  }
}

for(i=0; i<total; i++)
{
  printf("%s\n",parsed[i]);
}

問題是當我打印出解析數組中的值時,似乎只有每行的最后一個值(即對於示例^,它將輸出1,0,2)。 我是C編程的新手,我該怎么辦?

現在,您正在使用i來索引已解析的數字,但是i也是您的行索引。 您需要一個單獨的索引來跟蹤已解析的數字。

int numberCount = 0;

...
    strcpy(parsed[numberCount++],token);
...

for(i=0; i<numberCount; i++)
    printf("%s\n",parsed[i]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM