Lire dans un fichier avec fscanf (langage C)
Xray063
Messages postés
44
Date d'inscription
Statut
Membre
Dernière intervention
-
jisisv Messages postés 3645 Date d'inscription Statut Modérateur Dernière intervention -
jisisv Messages postés 3645 Date d'inscription Statut Modérateur Dernière intervention -
J'ai un gros soucis : en fait je veux lire des données dans un fichier mais le problème, c'est que le prof, pour nous emmerder, nous a imposé un formatage (dans le fichier) de ce type :
Sommet1,Sommet2,distance;
Sommet2,Sommet3,distance;
Sommet1 et Sommet2 sont des chaines de caractères et distance, un entier.
Le problème est donc qu'il y a une virgule entre chaque paramètre et un point-virgule à la fin d'une ligne (au lieu des espaces qui rendraient la tache beaucoup plus simple !)
Je pensais que la , et ; étaient des séparateurs mais ca a pas l'air de fonctionner... Voilà ce que g tapé :
fscanf(fe,"%s,%s,%d;"Sommet1,Sommet2,&distance);
En fait, toute la ligne (dans le fichier) est stockée dans la première variable "Sommet1".
J'ai essayé de remplacer , et ; par des espaces dans la commande scanf mais rien à faire
QQ'un saurait-il comment faire siouplé ?
Merci !
Sommet1,Sommet2,distance;
Sommet2,Sommet3,distance;
Sommet1 et Sommet2 sont des chaines de caractères et distance, un entier.
Le problème est donc qu'il y a une virgule entre chaque paramètre et un point-virgule à la fin d'une ligne (au lieu des espaces qui rendraient la tache beaucoup plus simple !)
Je pensais que la , et ; étaient des séparateurs mais ca a pas l'air de fonctionner... Voilà ce que g tapé :
fscanf(fe,"%s,%s,%d;"Sommet1,Sommet2,&distance);
En fait, toute la ligne (dans le fichier) est stockée dans la première variable "Sommet1".
J'ai essayé de remplacer , et ; par des espaces dans la commande scanf mais rien à faire
QQ'un saurait-il comment faire siouplé ?
Merci !
A voir également:
- Lire dans un fichier avec fscanf (langage C)
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Lire un fichier epub - Guide
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
1 réponse
J'ai essay un truc du genre:
char st1[MAX_LEN], st2[MAX_LEN];
unsigned in len;
....
....
while(fscanf(filorg, "%[^,],%[^,],%u\n", st1, st2, &len) >0 )
{
printf("Sommet1 : %s\t Sommet2 : %s\t Distance %d\n", st1, st2, len);
}
Cela donne un résultat mais je n'ai pas essayé tous les cas de figure.
Regarder man fscanf
Johan Daine
The software said "Requires Windows98, Win2000, or better
So I installed Unix.
char st1[MAX_LEN], st2[MAX_LEN];
unsigned in len;
....
....
while(fscanf(filorg, "%[^,],%[^,],%u\n", st1, st2, &len) >0 )
{
printf("Sommet1 : %s\t Sommet2 : %s\t Distance %d\n", st1, st2, len);
}
Cela donne un résultat mais je n'ai pas essayé tous les cas de figure.
Regarder man fscanf
Johan Daine
The software said "Requires Windows98, Win2000, or better
So I installed Unix.