[英]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.