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 :

problème de lecture fichier


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut problème de lecture fichier
    Bonjour,

    Je lie un fichier en c, et j'utilise une méthode qui compte les lignes du fichier, le problème c'est que quand je compte les lignes ça arrive a la fin du fichier et donc après quand il veu lire le fichier, le pointeur se trouve a la fin du fichier donc ne lit plus rien comment je peux faire pour revenir au début svp ?

  2. #2
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    il faut utiliser la fonction fseek :

    http://www.cplusplus.com/ref/cstdio/fseek.html

    mais si il s'agit juste de compter les lignes d'un fichier je ne vois pas a quoi il va servir
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  3. #3
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    #include <stdio.h>

    void rewind(FILE *stream);

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    merci mais je voulais savoir ce qui'il fallait mettre dans le .cpp et le .h stp ?

  5. #5
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Dans le .cpp, tu mets du C++. Le C, c'est .c.
    Ensuite, c'est assez banal. Apres une premiere lecture du fichier, tu le 'rembobines'.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    #include <stdio.h>
     
    ...
     
    f = fopen("toto.txt", "r");
     
    if (f)
    {
       /*
        * premier passage pour lire le nombre de lignes
        */
      ...
     
      /*
       * on revient au debut
       */
      rewind(f);
     
      /*
       * deuxieme passage pour analyse
       */
      ...
     
      fclose(f);
    }

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    tu pourais m'aider si je te donnais mon source stp ?
    je suis un peu un débutant

  7. #7
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Citation Envoyé par Polo40
    tu pourais m'aider si je te donnais mon source
    C'est le principe du forum. Poste ton code (simplifie pour n'inclure que la portion problematique, mais compilable). Une bonne ame tentera d'en demeler les fils...

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    pas mal l'expression mais ça marche, j'ai mis comme code dans ma classe ESFichier.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fseek (fichier,0,SEEK_SET);
    ça revient bien au début, je suis content merci quand meme

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Polo40
    pas mal l'expression mais ça marche, j'ai mis comme code dans ma classe ESFichier.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fseek (fichier,0,SEEK_SET);
    ça revient bien au début, je suis content merci quand meme
    ou tu aurais pu mettre rewind(), comme il t'a été conseillé.

    Attention.

    L'extension de tes fichiers semble être .cpp. Si tu fais du C, c'est une erreur. Il faut renommer en .c de façon à être sûr d'invoquer le bon compilateur.

    Tu peux ajouter ça au début du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #ifdef __cplusplus
    #error This source file is not C++ but rather C. Please use a C-compiler
    #endif
    Si ça compile, c'est ok. Le bon compilateur est invoqué. Sinon, c'est que le compilateur C++ est iinvoqué. En principe, le changement d'extension préconisé suffit. Sinon, voir la configuration de l'IDE qui force peut être un mode C++...
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. [os]Problème de lecture fichier
    Par LoLesK dans le forum Général Python
    Réponses: 4
    Dernier message: 18/04/2008, 11h25
  2. problème de lecture fichier
    Par Fahmi06 dans le forum Qt
    Réponses: 1
    Dernier message: 29/10/2007, 09h20
  3. Problème de lecture fichier texte
    Par Draconic dans le forum Visual C++
    Réponses: 1
    Dernier message: 05/08/2007, 18h00
  4. Problème STL lecture fichier texte
    Par Bourrine dans le forum VC++ .NET
    Réponses: 4
    Dernier message: 03/04/2007, 11h57
  5. [C#-XML] - Problème de lecture fichier XML
    Par Gloups dans le forum Windows Forms
    Réponses: 9
    Dernier message: 08/08/2006, 00h40

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