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?
Vous devez vous connecter pour publier un commentaire.
S'il vous plaît changer
à
et essayez à nouveau.
Chaque ligne de votre fichier d'entrée a un saut de ligne, et elle doit être ignorée, l'espace avant le premier
%c
va le faire.realloc()
semble que la seule façon de gérer cela.