Importer des données à partir d'un fichier txt dans un programme C

J'ai besoin d'importer des données à partir d'un data.txt fichier dans un programme C. Ma source de données est comme ceci:

A ABC001 B
A ABC002 B
A ABC003 C
B ABC004 C
B ABC005 E
C ABC006 B
D ABC007 A
D ABC008 B
E ABC009 D

J'ai défini un nouveau type de données pour contenir toutes les informations:

typedef struct node {
    char street_name;
    char number_plate[7];
    char destination;
} Car;

Ici c'est ma tentative d'importer les données à partir du fichier ci-dessus dans un tableau:

int main(void)
{
    FILE *file;
    int i = 0;
    Car carinfo[9];

    file = fopen("data.txt", "r");

    while (EOF != fscanf(file, "%c %6s %c", &carinfo[i].street_name,
                                            &carinfo[i].number_plate, 
                                            &carinfo[i].destination))
    {
        printf("Loop #%d\n", i+1);
        i++;
    }



    for (i = 0; i < 9; i++)
    {
        printf("Street Name: %c, Number Plate: %s, Destination: %c\n", carinfo[i].street_name, 
                                                                       carinfo[i].number_plate, 
                                                                       carinfo[i].destination);
    }

    fclose(file);
    return 0;
}

La while boucle est exécutée 10 fois, puis fait planter le programme, car, apparemment, elle méconnaît le EOS qui devraient empêcher une autre itération.

Qu'est ce que je fais de mal ici? Quelqu'un peut-il svp m'aider à comprendre?

  • Veuillez toujours mentionner le bon en-têtes dans vos exemples.
  • La sortie que vous obtenez?
  • Ça plante avec une erreur de segmentation?
InformationsquelleAutor haunted85 | 2014-03-30