La fonction fscanf ou fgets
Résolu
Pierre_Marie
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Salut toute la communauté !
Une preoccupation de plus. j'ai creé un fichier en langage c dans lequel jai rangé plusieurs infos suivant cet ordre.
Nom:prenom:naiss:email:password
maintenant je me demande comment recuperer dans le fichier uniquement l'email. Jai trouvé une solution avec la fonction fgetc mais jaimerais pas l'utiliser car elle me fait trop de lignes. je désire donc le faire avec la fonction fscanf ou soit la fonction fgets. Svp quelqu'un aurait une solution à me proposer?
Cordialement,
Une preoccupation de plus. j'ai creé un fichier en langage c dans lequel jai rangé plusieurs infos suivant cet ordre.
Nom:prenom:naiss:email:password
maintenant je me demande comment recuperer dans le fichier uniquement l'email. Jai trouvé une solution avec la fonction fgetc mais jaimerais pas l'utiliser car elle me fait trop de lignes. je désire donc le faire avec la fonction fscanf ou soit la fonction fgets. Svp quelqu'un aurait une solution à me proposer?
Cordialement,
1 réponse
Un exemple de code avec fgets:
C'est un code minimal, n'oublie pas de faire des vérifications pour les erreurs (retour de fopen, fgets et strtok notamment).
La curiosité est une excellente qualité !
#include <stdio.h> #include <string.h> // Ne pas oublier string.h pour strtok ! int main(void) { FILE* file = fopen("fichier", "r"); // On ouvre le fichier char ligne[1000] = ""; char* email = NULL; int i; fgets(ligne, 1000, file); // On récupère la ligne (ici ça sera la première, vu que c'est la première fois qu'on lit dans le fichier) strtok(ligne, ":"); // strtok retourne un pointeur sur le premier champ ... strtok(NULL, ":"); // ... puis sur le deuxième ... strtok(NULL, ":"); // ... puis sur le troisième ... email = strtok(NULL, ":"); // ... et enfin sur le quatrième (l'email). // Note: strtok a modifié la chaîne de caractère ligne. On ne peut plus l'utiliser. puts(email); // Affichage de l'e-mail fclose(file); // On ferme le fichier }
C'est un code minimal, n'oublie pas de faire des vérifications pour les erreurs (retour de fopen, fgets et strtok notamment).
La curiosité est une excellente qualité !
1ère ligne :
La fonction strtok() scinde une chaîne en une séquence d'éléments lexicaux. Lors du premier appel à strtok(), la chaîne à scinder doit être spécifiée dans str. Dans chaque appel ultérieur fait pour analyser la même chaîne, str doit être NULL.