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 :

2 fread successif qui marche pas


Sujet :

C

  1. #1
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Par défaut 2 fread successif qui marche pas
    je stocke dans un fichier textes des données de type mot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct
    {
        TabCar chaine ;
        TabInt ligne ;
        int nbOccurences ;
    } Mot ;
    avec un fwrite :
    m est de type mot evidemment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fwrite (&m.chaine,sizeof(m),1,ptFichier);
    Quand je ve faire 2 lecture successive avec fread ca affiche bien le premier mais pas les suivants
    J'utilise fread que je ve bouclé pour lire tou le fichier mais apres ajout du deuxieme mot il affiche pas les suivant que le premier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fread(&m2, sizeof(m2), 1, ptFichier);

  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 Re: 2 fread successif qui marche pas
    Citation Envoyé par darktears
    je stocke dans un fichier textes des données de type mot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct
    {
        TabCar chaine ;
        TabInt ligne ;
        int nbOccurences ;
    } Mot ;
    avec un fwrite :
    m est de type mot evidemment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fwrite (&m.chaine,sizeof(m),1,ptFichier);
    Bizarre, j'aurais fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fwrite (&m, sizeof m, 1, ptFichier);
    Quand je ve faire 2 lecture successive avec fread ca affiche bien le premier mais pas les suivants
    J'utilise fread que je ve bouclé pour lire tou le fichier mais apres ajout du deuxieme mot il affiche pas les suivant que le premier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fread(&m2, sizeof(m2), 1, ptFichier);
    Montre le code exact, complet, réduit au minimum et compilable qui montre le problème.

  3. #3
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Par défaut
    code dans le main:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    TabInt tab3;
         Mot m3;
         tab3[0]=1;
         m3=unMot("ballon",tab3,1);
         printf("\nMot a ajouter : ");     printf("\n");    printf(m3.chaine);printf("\n");
         system("PAUSE");
         ajouterMotNonCle (Pt,m3);
          afficherMotsNonCle(Pt);
         system("PAUSE");
    puis dans les 2 procedures:
    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
     
    int ajouterMotNonCle (FILE * ptFichier,Mot m)
    {
     fseek (ptFichier,0, SEEK_END);
     fwrite (&m,sizeof(m),1,ptFichier);
     fseek (ptFichier,0, SEEK_SET);
     return(0);   
    }
     
    void afficherMotsNonCle(FILE * ptFichier)
    {
         fseek (ptFichier,0, SEEK_SET);
            Mot m;
            fread(&m, sizeof(m), 1, ptFichier);
            Mot m2;
            printf(m.chaine);
            printf("\n");
            fread(&m2, sizeof(m2), 1, ptFichier);
            printf(m2.chaine);
            printf("\n");
        }
    L'idée c a la fin de boucler pour tous lire mais actuellement ca fais pa les deux de suite le premier marche mais apres non

  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 darktears
    code dans le main:<...>
    Quels sont les mots que tu ne comprends pas dans
    Montre le code exact, complet, réduit au minimum et compilable qui montre le problème.
    Qu'est-ce qu'il faut faire pour se faire comprendre ? Je dois passer une heure à rendre ton code compilable 'à ma façon', c'est à dire qui n'aura rien à voir avec la tienne ?
    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
     
    ../main.c:1: error: syntax error before "tab3"
     
    ../main.c:1: warning: type defaults to `int' in declaration of `tab3'
    ../main.c:1: warning: data definition has no type or storage class
    ../main.c:2: error: syntax error before "m3"
     
    <... 50 lignes d'erreurs et de warnings>
     
    ../main.c: At top level:
     
    ../main.c:21: warning: no previous prototype for 'afficherMotsNonCle'
    ../main.c:21: error: conflicting types for 'afficherMotsNonCle'
    ../main.c:8: error: previous declaration of 'afficherMotsNonCle' was here
    ../main.c:21: error: conflicting types for 'afficherMotsNonCle'
    ../main.c:8: error: previous declaration of 'afficherMotsNonCle' was here
    ../main.c: In function `afficherMotsNonCle':
    ../main.c:23: error: `Mot' undeclared (first use in this function)
    ../main.c:23: error: syntax error before "m"
    ../main.c:24: error: `m' undeclared (first use in this function)
    ../main.c:25: error: syntax error before "m2"
     
    ../main.c:28: error: `m2' undeclared (first use in this function)
    Même en essayant d'utiliser des éléments précédents,
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    #line 1
    #include <stdio.h>
    #include <stdlib.h>
     
    typedef struct
    {
       TabCar chaine;
       TabInt ligne;
       int nbOccurences;
    }
    Mot;
     
    static int ajouterMotNonCle (FILE * ptFichier, Mot m)
    {
       fseek (ptFichier, 0, SEEK_END);
       fwrite (&m, sizeof (m), 1, ptFichier);
       fseek (ptFichier, 0, SEEK_SET);
       return (0);
    }
     
    static void afficherMotsNonCle (FILE * ptFichier)
    {
       fseek (ptFichier, 0, SEEK_SET);
       Mot m;
       fread (&m, sizeof (m), 1, ptFichier);
       Mot m2;
       printf (m.chaine);
       printf ("\n");
       fread (&m2, sizeof (m2), 1, ptFichier);
       printf (m2.chaine);
       printf ("\n");
    }
     
    int main (void)
    {
       TabInt tab3;
       Mot m3;
       tab3[0] = 1;
       m3 = unMot ("ballon", tab3, 1);
       printf ("\nMot a ajouter : ");
       printf ("\n");
       printf (m3.chaine);
       printf ("\n");
       system ("PAUSE");
       ajouterMotNonCle (Pt, m3);
       afficherMotsNonCle (Pt);
       system ("PAUSE");
     
       return 0;
    }
    c'est pas ça:
    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
    27
    28
    29
    30
    31
    32
    33
    34
     
    ../main.c:6: error: syntax error before "TabCar"
     
    ../main.c:6: warning: no semicolon at end of struct or union
    ../main.c:7: warning: type defaults to `int' in declaration of `ligne'
    ../main.c:7: warning: data definition has no type or storage class
    ../main.c:9: error: syntax error before '}' token
    ../main.c:10: warning: type defaults to `int' in declaration of `Mot'
    ../main.c:10: warning: data definition has no type or storage class
    ../main.c:12: error: syntax error before "Mot"
    ../main.c:13: warning: function declaration isn't a prototype
    ../main.c: In function `ajouterMotNonCle':
    ../main.c:14: error: `ptFichier' undeclared (first use in this function)
    ../main.c:14: error: (Each undeclared identifier is reported only once
    ../main.c:14: error: for each function it appears in.)
    ../main.c:15: error: `m' undeclared (first use in this function)
     
    ../main.c: In function `afficherMotsNonCle':
    ../main.c:23: error: syntax error before "m"
    ../main.c:24: error: `m' undeclared (first use in this function)
    ../main.c:25: error: syntax error before "m2"
    ../main.c:26: warning: format not a string literal and no format arguments
    ../main.c:28: error: `m2' undeclared (first use in this function)
    ../main.c:29: warning: format not a string literal and no format arguments
    ../main.c: In function `main_':
    ../main.c:35: error: `TabInt' undeclared (first use in this function)
     
    ../main.c:35: error: syntax error before "tab3"
    ../main.c:37: error: `tab3' undeclared (first use in this function)
    ../main.c:38: error: `m3' undeclared (first use in this function)
    ../main.c:38: error: implicit declaration of function `unMot'
    ../main.c:38: warning: nested extern declaration of `unMot'
    ../main.c:41: warning: format not a string literal and no format arguments
    ../main.c:44: error: `Pt' undeclared (first use in this function)

  5. #5
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Par défaut
    oups desolé pardon

Discussions similaires

  1. script qui marche pas...
    Par jpg dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/10/2004, 14h19
  2. requete(jointure 2 tables) qui marche pas
    Par DaxTaz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/06/2004, 17h50
  3. une comparaison qui marche pas.
    Par gandf dans le forum C++Builder
    Réponses: 7
    Dernier message: 16/02/2004, 15h59
  4. [LG]Split qui marche pas
    Par macluvitch dans le forum Langage
    Réponses: 3
    Dernier message: 30/11/2003, 18h19
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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