IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Fscanf lecteur fichier


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 149
    Par défaut Fscanf lecteur fichier
    Bonjour,
    voila j'ai un fichier .txt avec des renseignement de ce type :
    nom|prenom|age
    nom|prenom|age
    Séparé donc par des : |
    et ce que je cherche c'est récupérer les infos qu'il y a entre les tubes... je crois que c'est avec scanf mais je ne sais pas comment faire pour réaliser ce que je souhaite
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par marty499 Voir le message
    Bonjour,
    voila j'ai un fichier .txt avec des renseignement de ce type :
    nom|prenom|age
    nom|prenom|age
    Séparé donc par des : |
    et ce que je cherche c'est récupérer les infos qu'il y a entre les tubes... je crois que c'est avec scanf mais je ne sais pas comment faire pour réaliser ce que je souhaite
    Merci d'avance
    *scanf() ne peut, à ma connaissance, pas régler ce problème. Tu peux utiliser strtok() (ou strtok_r(), qui est POSIX.1)

    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Simpson|Homer|48
    Bouvier|Marge|39
    Simpson|Bart|10
    Simpson|Lisa|8
    Simpson|Maggie|1
    Ca peut donner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Simpson             Homer                48
    Bouvier             Marge                39
    Simpson             Bart                 10
    Simpson             Lisa                  8
    Simpson             Maggie                1
     
    Process returned 0 (0x0)   execution time : 0.016 s
    Press any key to continue.

  3. #3
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Avec un scanf, c'est un peu tordu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     scanf("%[^|]%*c%[^|]%*c%[^\n]%*c",nom,prenom,age);
    Le format s'interprète de la façon suivante :

    1- %[^|] : Lire la chaîne de caractères jusqu'à trouver | (exclu de la lecture) et la stocker dans le tableau passé en argument. Puis :
    2- %*c : Lire un caractère (le |) sans le stocker
    3- %[^|]%*c Recommencer comme en 1 et 2
    4- %[^\n]%*c Lire la chaîne jusqu'à un '\n' (exclu) et stocker puis lire le '\n' sans le stocker

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par diogene Voir le message
    Avec un scanf, c'est un peu tordu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     scanf("%[^|]%*c%[^|]%*c%[^\n]%*c",nom,prenom,age);
    trop compliqué pour moi... pas assez de neurones.
    Au fait, age est un int, y'a pas un bug ?

  5. #5
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    trop compliqué pour moi... pas assez de neurones.
    Oui, comme je l'ai dit, c'est tordu.

    Au fait, age est un int, y'a pas un bug ?
    Pour age, un entier est logique, mais comme il n'avait pas préciser sous quelle forme il le voulait, j'avais même pas fait attention

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fscanf et fichier en C
    Par gentil-personnage dans le forum Débuter
    Réponses: 2
    Dernier message: 25/06/2009, 13h48
  2. Lecteur fichier XML
    Par lelectronique.com dans le forum Langage
    Réponses: 3
    Dernier message: 26/04/2007, 21h30
  3. Chaine de lecteur fichier texte
    Par undercrash dans le forum Langage
    Réponses: 3
    Dernier message: 14/06/2006, 11h41
  4. Lecteur fichiers mp3
    Par zuxion dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 04/06/2006, 10h32
  5. controle de choix de lecteur/fichier
    Par oniric dans le forum Access
    Réponses: 6
    Dernier message: 03/03/2006, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo