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 :

Afficher les lignes d'un fichier


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Afficher les lignes d'un fichier
    Bonjour!!!
    J'ai un petit probleme!!!
    j'ai une liste dans un fichier comme par exemple:

    mmm/xxx
    mmm/xxx
    mmm/xxx


    et je voudrai l'afficher en entier a l'ecran mais mon prog n'affiche que la derniere ligne!!!

    Si quelqu'un pouvais m'aider ce serai super!!!

    merci d'avance!!!


    [Titre modifié par Loulou24, merci d'utiliser des titres explicites à l'avenir]

  2. #2
    Membre habitué Avatar de .:morgoth:.
    Profil pro
    Inscrit en
    Février 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 124
    Points : 132
    Points
    132
    Par défaut
    Tu utilises quoi comme fonction pour accéder a ton fichier ?
    fopen / fread / fclose ?

    Montre nous le morceau de code ou tu fais la lecture du fichier.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Février 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut oui j'utilise ca!!!
    pourrai tu pas me donner les lignes de code!!! car ce ke g fait c du bricollage!!!
    merci d'avance!!

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Non, on ne peut pas te donner les lignes de code. On est là pour t'aider, pas pour te pondre du code tout fait.
    D'autant plus que tout ceci se trouve dans la FAQ...

    Et merci de ne pas abuser des couleurs dans tes messages.

    Je te recommande vivement de faire un tour par les règles du forum.

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Février 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    merci bocoup!!!
    j'avasi pa vu cette FAQ!!!

  6. #6
    Membre habitué Avatar de .:morgoth:.
    Profil pro
    Inscrit en
    Février 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 124
    Points : 132
    Points
    132
    Par défaut
    Le code doit ressembler a qqch comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    File *f;
    fopen (f,"fichier.txt","R"); // R ->ouverture du fichier en lecture
    // ...
    while (!eof (f)) fread (...);
    // ...
    fclose (f);
    Voila j'en dis pas plus sinon je vais fâcher les modérateurs

  7. #7
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    plutot des ifstream/ofstream #include<fstream> que des File*

    et le test de fin de fichier avec eof(), c'est pas top

  8. #8
    Membre habitué Avatar de .:morgoth:.
    Profil pro
    Inscrit en
    Février 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 124
    Points : 132
    Points
    132
    Par défaut
    Oui bon ca va, chacun ses méthodes...

  9. #9
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 683
    Points
    10 683
    Billets dans le blog
    3
    Par défaut
    Exactement. En C y'a la méthode fopen, en C++ les flux...

  10. #10
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par .:morgoth:.
    Oui bon ca va, chacun ses méthodes...
    Chacun ses méthodes, mais il y en a qui marchent, d'autres pas. Tester la fin avec eof est une des méthodes qui ne marche pas...

    Après, parmi celles qui marchent, certaines sont un peu

  11. #11
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    ce que je ne comprend pas, c'est pourquoi on m'a seulement appris à l'école la méthode eof() pour tester l'arrivée en fin de fichier...

    c'est seulement en arrivant sur le forum que j'ai vu autre chose.

    (mais bon, cela est un autre débat).

    donc en C++, on utilise plutot les fstream pour manipuler les fichiers.

  12. #12
    Membre habitué Avatar de .:morgoth:.
    Profil pro
    Inscrit en
    Février 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 124
    Points : 132
    Points
    132
    Par défaut
    J'en prends bonne note chers amis...
    (Désolé je pensais bien faire )

  13. #13
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    La méthode proposée par morgoth est pus orientée C, et de plus eof() est une fonction tout à fait standard qui fonctionne parfaitement.

    Sinon voir dans la FAQ sur ifstream,ofstream et les flux(stream) en C++ qui ont un net avantage par rapport au C, en lisibilité et sûreté du code, je trouve.

  14. #14
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 683
    Points
    10 683
    Billets dans le blog
    3
    Par défaut
    eof() c'est très bien pour tester... la fin d'un fichier. Mais c'est pas suffisant comme test.
    Prenons l'exemple de la lecture depuis une disquette: tu lis un gros fichier. Et puis l'utilisateur retire la disquette : erreur de lecture, et pourtant on n'est pas à la fin du fichier : eof() ne te permet pas de détecter l'erreur.
    ce que je ne comprend pas, c'est pourquoi on m'a seulement appris à l'école la méthode eof() pour tester l'arrivée en fin de fichier...
    Parce que c'est la bonne méthode. Mais tester l'arrivée en fin de fichier n'est pas un test suffisant pour arrêter la lecture.
    A l'école on n'apprend pas tout, surtout en info. Moi j'aime bien dire qu'on t'apprend à lire, à toi à lire les bouquins ensuite...

  15. #15
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    j'ai l'impression qu'on nous apprend à lire, certes, mais des BD Mickey Parade.
    après on se sent léger si l'on doit utiliser un langage plus soutenu.

    merci pour les explications (erreurs de lecture/fin de fichier)

  16. #16
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Citation Envoyé par bigboomshakala
    ce que je ne comprend pas, c'est pourquoi on m'a seulement appris à l'école la méthode eof() pour tester l'arrivée en fin de fichier...
    L'habitude des autres langages/algorithmie ?
    J'avais appris à faire comme ça en Pascal il y a longtemps. Après, cela laisse facilement des traces. Avec le recul et la juste remarque d'Aurélien, je ne sais même plus si au fond c'était bon.

  17. #17
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 683
    Points
    10 683
    Billets dans le blog
    3
    Par défaut
    En fait faudrait voir quelle est la condition de eof, si le langage décide que quand y'a erreur de lecture c'est eof() ou pas (plus rien à lire).
    En C feof() sert uniquement pour la fin de fichier, et y'a bien une distinction feof() / ferror().
    En C++ je pensais que c'était pareil avec eof() / fail(), mais mes tests ont montré que si je retire la disquette avant qu'il ait fini de lire c'est eof() + fail(), et ce même si je fais une premiere lecture - rembobinage - relecture. Donc en C++ une erreur de lecture semble déclencher un eof.
    Par contre en C ça plante si on utilise feof().

Discussions similaires

  1. Réponses: 12
    Dernier message: 02/12/2013, 00h17
  2. Réponses: 2
    Dernier message: 02/03/2012, 12h09
  3. afficher les lignes d'un fichier qui ne sont pas dans lun autre fichier
    Par israellita dans le forum Shell et commandes GNU
    Réponses: 16
    Dernier message: 11/03/2011, 11h39
  4. Réponses: 3
    Dernier message: 26/04/2004, 12h51

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