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 de fichier


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 138
    Points : 60
    Points
    60
    Par défaut Problème de lecture de fichier
    bonjour à tous

    j'ai un soucis des plus banals, mais je comprend pas. je débute en c++, mais j'ai déja fait des lectures de fichier sans problème. voila le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    char c_case_state[1] = "";
    char file_name[MAX_PATH] = "";
     
    sprintf(file_name, "Maps/%d.sta", boucle);
    fsta = fopen(file_name, "r");
     
    fread(c_case_state, 1, 1, fsta);
    printf("[%s]", c_case_state);
     
    fclose(fsta);
    voila. sachant que dans mon fichier .sta, je n'ai que des 1, je comprend pas comment mon fread peut me renvoyer "1128". déja, 4 caractères, ça devrait pas, puisque je lui demande d'en lire qu'un, et ma variable c_case_state fait de toutes façons 1 caractère.

    quelqu'un a vu un bug dans mon code ? je précise que mon fichier est bien ouvert (fsta != NULL), et que je veux récupérer un seul caractère ("1" en l'occurence)

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    Bien le bonsoir,

    déjà ton code est écrit en C. J'ai déplacé dans le forum C.

    Ensuite, il y a un souci dans ton appel à fread. Le premier argument doit être un pointeur et tu passes un char.

  3. #3
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Non, c_case_state est du bon type puisque c'est un tableau de caractère, mais malheureusement, d'un seul caractère, il faut en mettre au moins 2.
    Tu peux faire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    char c_case_state[2] = {0};
    char file_name[MAX_PATH] = {0};
     
    sprintf(file_name, "Maps/%d.sta", boucle);
    fsta = fopen(file_name, "r");
     
    fread(c_case_state, 1, 1, fsta);
    printf("[%s]", c_case_state);
     
    fclose(fsta);
    En mettant char c_case_state[2] = {0};, tout le tableau est intialisé à 0.
    Le problème de ton programme est que, ton tableau ne faisant qu'un seul caractère, le printf avec %s fonctionnait mal, car ce format suppose que la chaîne de caractère passée en argument c_case_sta soit une chaine valide, c'est-à-dire se terminant par le caractère 0, ce qui pouvait être (ou ne pas être, ce sont les joies du C) le cas.

  4. #4
    Membre régulier
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    81
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 81
    Points : 77
    Points
    77
    Par défaut
    Si il s'agit d'une question d'affichage avec le printf un petit printf("%c",c_case_state) n'aurait t-il pas suffit ???

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 138
    Points : 60
    Points
    60
    Par défaut
    @khayyam90 : oups, désolé, je ne fais pas encore la différence entre du c et du c++ ...

    @Trap D : merci beaucoup pour l'info, j'ai un peu de mal avec ces chaines de caractère je regarde ce soir si ça corrige mon soucis

    @Popof : bien vu, mais le printf n'est que pour le debug, en fait. la finalité, c'est que ce caractère que je li dans mon fichier .sta est transformé en int et mi dans un tableau.

  6. #6
    Membre régulier
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    81
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 81
    Points : 77
    Points
    77
    Par défaut
    Dans ce cas là si ce n'est que pour du debug testes l'affichage avec les bons paramètres (un %s en utilisant un tableau de 2 caractères ou %c en reprenant ton code) tu verras alors ci c'est l'affichage qui poses un problème ou ta lecture de fichier.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 138
    Points : 60
    Points
    60
    Par défaut
    ok, parfait, j'ai utilisé la méthode de c_case_state[2]

    merci à tous

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

Discussions similaires

  1. [POI] Problème de lecture des fichiers Word
    Par Dari dans le forum Documents
    Réponses: 9
    Dernier message: 05/07/2007, 14h08
  2. Problème de lecture sur fichier ini.
    Par braoru dans le forum Delphi
    Réponses: 2
    Dernier message: 28/07/2006, 15h34
  3. [DOM4J] Problème de lecture de fichier xml avec dom4j
    Par santana2006 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 05/04/2006, 16h52
  4. Problème de lecture de fichier Excel
    Par cocaetjusdorange dans le forum Langage
    Réponses: 4
    Dernier message: 08/02/2006, 11h08
  5. Problème de lecture de fichier Oracle 9.2
    Par fortlow dans le forum Oracle
    Réponses: 4
    Dernier message: 14/11/2005, 16h48

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