簡體   English   中英

從不同位置讀取文件並放入C數組中

[英]Read file from different positions and put in an array in C

我想讀取一個看起來像這樣的文件:

Name=José, Age=21  
Name=Antonio, Age=26  
Name=Maria, Age=24

我的問題是如何從不同的位置和不同的行讀取名稱和年齡,並將其放入一個數組names[size]和相同的東西為ages[size]

我現在有這個:

#include <stdio.h>

#define size 100

int main()
{
    char ch = 0;
    int i = 0;
    char names[size];
    char ages[size];

    FILE *fp1;

    fp1 = fopen("data.txt", "r");
    if(fp1 == NULL)
    {
        printf("Error!");
        return 1;
    }
    while((ch=fgetc(fp1)) != '=');
        while((ch=fgetc(fp1)) != ',')
        {
            fscanf(fp1, "%s", names);
            i++;
        }

    fclose(fp1);

    printf("Names = %s", names);

    return 0;
}

誰能解釋給我最好的方法是什么?

您需要2D陣列。 例如names[number of record][max length size + 1]
這樣的方式樣本

#include <stdio.h>

#define size 100

int main(void){
    int i = 0;
    char names[size][128];
    char ages[size][4];

    FILE *fp1;

    fp1 = fopen("data.txt", "r");
    if(fp1 == NULL){
        printf("Error!\n");
        return 1;
    }
    while(i < size && 2 == fscanf(fp1, "Name=%127[^,], Age=%3[0-9]\n", names[i], ages[i])){
        i++;
    }
    fclose(fp1);

    int n = i;
    for(i = 0; i < n; ++i)
        printf("Names = %s, Ages = %s\n", names[i], ages[i]);

    return 0;
}

暫無
暫無

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

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