Lire des mots dans un fichier avec le ";" comme séparateur
Résolu
nemo1310
Messages postés
61
Date d'inscription
Statut
Membre
Dernière intervention
-
nemo1310 Messages postés 61 Date d'inscription Statut Membre Dernière intervention -
nemo1310 Messages postés 61 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un fichier texte que je souhaite lire avec C.
le fichier contient:" Les Aventures de Tintin;Belgique;24 "
Comment obtenir en sorite du programme 3 variables qui ont pour valeur:
titre = Les Aventures de Tintin
pays = Belgique
num = 24
je vous remercie pour votre aide
j'ai un fichier texte que je souhaite lire avec C.
le fichier contient:" Les Aventures de Tintin;Belgique;24 "
Comment obtenir en sorite du programme 3 variables qui ont pour valeur:
titre = Les Aventures de Tintin
pays = Belgique
num = 24
je vous remercie pour votre aide
1 réponse
-
Bonjour,
Commençons par un exemple simple (mais qui ne marche pas):char buffer[100]; if ( fgets( buffer , sizeof buffer , stdin ) ) { char titre[100]; char pays[100]; int num; if ( sscanf( buffer , "%s;%s;%d" , titre , pays , &num ) == 3 ) { printf("ok, lu : %s %s %d" , titre , pays , num ); } else { } }Le sscanf considère l'espace comme séparateur et n'extrait pas correctement le titre.
Il faut donc remplacer le sscanf par une fonction à écrire plus pertinente.
La fonction doit rechercher dans le buffer les ';' et extraire les sous-chaines
La fonction strchr(,) qui retourne l'adresse de la première occurrence du caractère recherché, ou bien NULL si caractère n'est pas trouvé pourrait être utilisée.