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 :

lire un fichier caractère par caractère


Sujet :

C

  1. #1
    Membre éclairé Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Par défaut lire un fichier caractère par caractère
    Salut
    j'ai cherché dans les tutoriels et FAQ C mais je n'ai pas trouvé un tutoriel qui m'explique les différents manière de lecture d'un fichier en C.
    Je veux lire un fichier caractère par caractère, dois-je utiliser getc() ou getchar() ?
    merci pour l'aide

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Bonsoir,

    Il y a des tutoriels dans la section langage C : voir cours magistraux.

    Par rapport à la lecture de caractère : voir celui-ci

  3. #3
    Membre éclairé Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Par défaut
    En lisant sur lecture d'un fichier caractère par caractère j'ai trouvé que l'utilisation de la fonction fseek est déconseillé lorsque on lit le fichier en mode texte, mais je ne comprends pas pourquoi, pouvez vous m'expliquez? merci

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    fseek n'a absolument rien à voir avec la lecture de fichier.
    Pour la lecture, on a
    - fgetc
    - getc
    - fread
    - fscanf

    http://www.cplusplus.com/reference/c.../cstdio/fgetc/

    getchar n'a lui aussi rien à voir avec la lecture de fichier. Il lit ce que l'utilisateur entre sur l'entrée standard (la console).
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,

    Citation Envoyé par janyoura Voir le message
    En lisant sur lecture d'un fichier caractère par caractère j'ai trouvé que l'utilisation de la fonction fseek est déconseillé lorsque on lit le fichier en mode texte, mais je ne comprends pas pourquoi, pouvez vous m'expliquez? merci
    Le problème n'apparait que pour les fichiers créés sur une plateforme et utilisés sous une autre, par exemple Unix et Windows. L'une utilise une fin de ligne '\n' et l'autre une fin de ligne '\r\n'. Du coup, le nombre de caractères d'une ligne n'est pas identique sur les deux plateformes, et fseek peut placer le curseur à des endroits non souhaités.

    A+

    Pfeuh

  6. #6
    Membre éclairé Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Par défaut
    Citation Envoyé par pfeuh Voir le message
    Salut,



    Le problème n'apparait que pour les fichiers créés sur une plateforme et utilisés sous une autre, par exemple Unix et Windows. L'une utilise une fin de ligne '\n' et l'autre une fin de ligne '\r\n'. Du coup, le nombre de caractères d'une ligne n'est pas identique sur les deux plateformes, et fseek peut placer le curseur à des endroits non souhaités.

    A+

    Pfeuh
    Salut,
    fseek prend en compte les tabulations, retour à la ligne et les espaces ? sont-ils considérés comme caractère?
    Merci

  7. #7
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    fseek n'interprète rien du tout, il compte des caractères. Il considère donc la tabulation et l'espace comme des caractères. Le 'retour à la ligne' étant formé d'un ou deux caractères en fonction de la plateforme, il sera donc considéré comme un ou deux caractères en fonction de la plateforme.

  8. #8
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    1 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 255
    Par défaut
    Citation Envoyé par janyoura Voir le message
    Salut,
    fseek prend en compte les tabulations, retour à la ligne et les espaces ? sont-ils considérés comme caractère?
    Merci
    Pourquoi tu entêtes avec fseek !! On n'arrête pas de te dire de ne pas l'utiliser !!! (cf l'autre message que tu as posté qui parle de la même chose)

    Refait ton programme sans fseek et que avec des fgetc, et dit nous ce que ça donne.
    On pourra plus facilement te guider, après.

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

Discussions similaires

  1. lire un fichier caractère par caractère
    Par THIB46 dans le forum VC++ .NET
    Réponses: 4
    Dernier message: 20/05/2015, 16h45
  2. Linux : lire un fichier et afficher le contenu caractère par caractère
    Par Roud9 dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 11/04/2011, 00h25
  3. Lire un fichier caractère par caractère
    Par boulbidor dans le forum C++
    Réponses: 6
    Dernier message: 08/01/2010, 16h55
  4. Réponses: 10
    Dernier message: 19/06/2006, 19h04

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