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 :

fread et frwrite


Sujet :

C

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Par défaut fread et frwrite
    Bonjour,
    j'aurais voulu avoir une explication détaillée de ces deux fonctions.
    J'ai bien vue la syntaxe mais apres coup je n'arrive pas á la comprendre donc ála réutiliser. Je ne comprend pas la différence avec fgetc ou fscanf et fputc et fprintf. Si quelqu'un avait une explication détaillé sur ces deux fonctions et la différence avec les 4 autres j'en serai reconnaissant.
    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Par défaut
    Ce que je ne comprend pas, c'est le premier parametre que l'on doit entrer dans ces deux fonctions, et les deux autres apramatres de taille et de nombre. Si l'on n'a pas la connaissance de ce que contient le fichier d'origine ces paramétres sont ils obligatoire?
    Merci

  3. #3
    Membre Expert Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par défaut
    http://man.developpez.com/man3/fread.3.php
    Citation Envoyé par man
    SYNOPSIS
    #include <stdio.h>
    size_t fread (void *ptr, size_t size, size_t nmemb, FILE *stream);
    size_t fwrite (const void *ptr, size_t size, size_t nmemb, FILE *stream);

    DESCRIPTION
    La fonction fread lit nmemb éléments de données, chacun d'eux représentant size octets de long, depuis le flux pointé par stream, et les stocke à l'emplacement pointé par ptr.
    La fonction fwrite écrit nmemb éléments de données, chacun d'eux représentant size octet de long, dans le flux pointé par stream, après les avoir lus depuis l'emplacement pointé par ptr.
    Ca paraît clair, non ?

    Pour répondre à ta question, comment veux-tu que fread sache combien d'éléments de combien d'octets lire si tu ne le lui indiques pas ?
    Ces informations dépendent de la taille de l'emplacement mémoire pointé par ptr. Or, fread ne peut pas connaître cette taille.

  4. #4
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 59
    Par défaut réponse a fread et fwrite
    Bonjour
    Le remplissage d'un fichier est réalisé par la répitition de l'appel :

    fwrite(adresse d'un ensemble de blocs d'informations,la taille d'un bloc en octets,le nombre de blocs de cette taille que l'on souhaite transférer dans le fichier,l'adresse de la structure décrivant le fichier)

    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include<stdio.h>
    main()
    {
    int n;
    FILE *f;
    f=fopen("data","w");
    do
    {printf("donnez un entier: ");
    scanf("%d",&n);
    if (n) fwrite(&n,2,1,f);   /*ou bien if (n) fwrite(&n,sizeof(int),1,f);*/
    }
    while (n);
    fclose(f);
    }
    ou bien on peut expliquer le fwrite de notre exemple tout simplement de la maniere suivante
    *&n c'est l'adresse de la variable qui contient la valeur qu'on veut écrire dans le fichier
    *2 c'est la taille d'un bloc du fichier
    *1 c'est le nombre de blocs a transférer
    *f c'est le nom intérne du fichier
    Notons que le fwrite d'une maniére générale permet de transférer plusieurs blocs consécutifs de meme taille a partir d'une adresse donnée

    La lecture d'un fichier
    se fait par un appel de la fonction fread dont les arguments sont comparables a ceux du fwrite

    et il faut pas oublier que le premier argument des fonctions fread et fwrite est une adresse alors lorsqu'on aura a faire a un tableau , faut utiliser tout simplement son nom sans le faire précéder par l'& tandis qu'avec une structure il faudra utilser l'opérateur & pour en obtenir l'adresse et dans ce dernier cas c préférable d'utiliser l'opérateur sizeof pour déterminer la taille du bloc a écrire ou lire

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Par défaut
    Je vous remercie pour ces indications.
    Pour etre plus precis desormais, je vais détaillé mon cas.
    Je désire aller chercher des informations inconnues dans un fichiers.
    Puis les recopié dans un autre fichier apes les avoir transformées.
    Ne connaissant pas ce qu'il y a dans le fichier initial, je ne peux définir le type et le nombre d'élément lu.
    Pour m'entrainé j'ai déja utilisé les fonctions fgetc mais je voudrais désormais utiliser fread.
    Pour ce qui est du &n variable qui contient ce qu'on vient de lire, on réécrit tout au long de la lecture dessus?
    Si on fait suivre un fwrite il faut le faire avant le nouveau fread pour écrire la bonne valeur de &n?
    Merci bcp

  6. #6
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par sone47
    Ce que je ne comprend pas, c'est le premier parametre que l'on doit entrer dans ces deux fonctions, et les deux autres apramatres de taille et de nombre. Si l'on n'a pas la connaissance de ce que contient le fichier d'origine ces paramétres sont ils obligatoire?
    Merci
    Comme l'a dit zooro, ces paramètres n'ont rien à voir avec le fichier que tu lis, mais avec l'espace mémoire que tu as réservé pour stocker les données en mémoire.

    exemple d'un fichier binaire contenant 10 entiers:

    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
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(void)
    {
        File *fichier_entiers;
        int buffer[10];
     
        fichier_entiers = fopen("mon_fichier.bin", "rb");
        if (fichier_entiers == NULL){
            fprintf(stderr, "La lecture a échoué!\n");
            exit(EXIT_FAILURE);
        }
     
        /* lit 4x10 octets dans le flux pointé par fichier_entiers et les stocke dans buffer */
        fread(buffer, sizeof(buffer[0]), sizeof(buffer), fichier_entiers);
     
        fclose(fichier_entiers);
     
        return EXIT_SUCCESS;
    }
    Bonne chance et meilleures salutations

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  7. #7
    Membre Expert Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par défaut
    Citation Envoyé par sone47
    Je désire aller chercher des informations inconnues dans un fichiers.
    Puis les recopié dans un autre fichier apes les avoir transformées.
    Elle consiste en quoi la transformation ?

    Parce que s'il s'agit juste d'une copie de fichier, inutile de se compliquer la vie.
    Tu lis un nombre d'octets quelconque et identique à chaque fois, et tu les écrits dans le nouveau fichier.

  8. #8
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par sone47
    Je vous remercie pour ces indications.
    Pour etre plus precis desormais, je vais détaillé mon cas.
    Je désire aller chercher des informations inconnues dans un fichiers.
    Puis les recopié dans un autre fichier apes les avoir transformées.
    Ne connaissant pas ce qu'il y a dans le fichier initial, je ne peux définir le type et le nombre d'élément lu.
    Pour m'entrainé j'ai déja utilisé les fonctions fgetc mais je voudrais désormais utiliser fread.
    Pour ce qui est du &n variable qui contient ce qu'on vient de lire, on réécrit tout au long de la lecture dessus?
    Si on fait suivre un fwrite il faut le faire avant le nouveau fread pour écrire la bonne valeur de &n?
    Merci bcp
    Bien sûr si tu ne connais rien du fichier que tu lis, ça rend les choses très compliquées, car, si c'est un fichier binaire, il peut contenir n'importe quoi.

    Comment veux-tu appliquer des traitements aux données d'un fichier si tu ne sais pas ce que tu traites?

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Par défaut
    Je vous remercie beaucoup car c'est exactement cela que je n'avais pas saisi.

    Maintenant si j'utilise:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     fread (ptr, sizeof(int), 1, in);
     fwrite (ptr, sizeof(int), 1, out);
    avec dans mon fichier d'entrée une suite d'entiers. Comment ce fait il qu'en sortie je récupére 4 entier alors que j'en ai spécifier qu'un seul.
    Lorsque le fichier d'entrée est lue, les tailles des différents types sont elles différentes?

    Une derniere question est ce que ces taille sont liées avec le mode d'ouverture des fichiers(texte ou binaire)

    Merci

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fread (ptr, sizeof(int), 10, in);
     fwrite (ptr, sizeof(int), 10, out);
    J'ai voulu lire et écrire 10 valeurs et a l'execution l'erreur vient du fait que la mémoire ne peut etre lu.
    Que ce passe t-il dans la mémoire lorsqu'on utilise ces fonctions
    Merci

  11. #11
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par sone47
    Je vous remercie beaucoup car c'est exactement cela que je n'avais pas saisi.

    Maintenant si j'utilise:

    fread (ptr, sizeof(int), 1, in);
    fwrite (ptr, sizeof(int), 1, out);

    avec dans mon fichier d'entrée une suite d'entiers. Comment ce fait il qu'en sortie je récupére 4 entier alors que j'en ai spécifier qu'un seul.
    Lorsque le fichier d'entrée est lue, les tailles des différents types sont elles différentes?

    Une derniere question est ce que ces taille sont liées avec le mode d'ouverture des fichiers(texte ou binaire)

    Merci
    Poste ton code, et on verra où se situe le problème!

    Il me semble que sous Linux, en tout cas, il n'y a pas de distinction entre un fichier texte et un fichier binaire. Je crois que sous Windows, il est nécessaire d'ouvrir les fichiers binaire en mode "rb", mais je connais mal Windows.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Par défaut
    Voici le code


    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
    // essai.cpp : Defines the entry point for the console application.
    //
     
    #include "stdafx.h"
    #include < stdio.h> 
    #define IN "entree.txt"
    #define OUT "sortie.txt"
     
    int main (void)
    {
    FILE *in,*out;
    int  nbo;
    int *ptr;
    ptr=&nbo;
    /* ouverture du fichier d'entree pour la lecture */
    /*************************************************/
    if ((in=fopen( IN, "rb")) == NULL)
    {
      printf( "Impossible d'ouvrir %s en lecture.\n", IN);
    }
    else
    {
      printf("%s ouvert pour lecture\n",IN);
    }
     
     
    /* ouverture du fichier de sortie pour l'ecriture */
    /**************************************************/
    if ((out = fopen( OUT, "wt")) == NULL)
    {
      printf( "Impossible de creer %s", OUT);
    }
    else
    {
      printf("%s cree et ouvert pour ecriture\n",OUT);
    }
     
     fread (ptr, int, 1, in);
     fwrite (ptr, sizeof(int),1, out);
     
     
    fclose( in);
     
    return 0;
    }
    Je voulais me familiariser avec ces fonctions et dans ce code je voulais juste prendre des données d'un fichier et en remettre pertiellement dans un autre.

  13. #13
    Membre Expert Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par défaut
    Citation Envoyé par sone47
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     fread (ptr, int, 1, in);
     fwrite (ptr, sizeof(int),1, out);
    Pourquoi pas plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     fread (ptr, sizeof(int), 1, in);
     fwrite (ptr, sizeof(int),1, out);
    ?

    Par ailleurs, tu aurais pu faire directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int nbo;
    fread (&nbo, sizeof(nbo), 1, in);
    fwrite (&nbo, sizeof(nbo),1, out);
    Je te conseille aussi de changer l'extension de ton fichier en .c (au lieu de .cpp), pour éviter que certains compilateurs ne le compilent en C++ au lieu de C.

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Par défaut
    Merci beaucoup de m'aider.
    J'ai fais comme vous m'avez indiqué (il est vrai que c'est plus clair) mais:
    si je rentre 1 pour le nbr de caractere lu et écrit, cela m'en écrit 4 en sortie
    si je rentre une autre valeur que 1, j'ai une erreur á l'exécution.

    Lorsqe l'on définit en binaire, quelle est la différence avec ces deux fonctions?
    Merci encore

  15. #15
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Mes commentaires sont dans le code /* -TC- ... */
    Citation Envoyé par sone47
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
     
    /* -TC- change l'extension en .c, car tu ne veux pas utiliser un compilateur C++ */
    // essai.cpp : Defines the entry point for the console application.
    //
     
    #include "stdafx.h"
    #include < stdio.h> 
    #include <stdlib.h>
    #define IN "entree.txt"
    #define OUT "sortie.txt"
     
    int main (void)
    {
        FILE *in,*out;
        int  nbo;
        /* -TC- utilisation de ptr n'est pas nécessaire dans ton code */
        int *ptr;
        ptr=&nbo;
     
        /* ouverture du fichier d'entree pour la lecture */
        /*************************************************/
     
        if ((in=fopen( IN, "rb")) == NULL)
        {
             printf( "Impossible d'ouvrir %s en lecture.\n", IN);
             /* -TC- Force le programme à terminer si l'ouverture a échoué,
                        ou alors essaie une nouvelle fois */
              exit(EXIT_FAILURE);
        }
        else
        {
             printf("%s ouvert pour lecture\n",IN);
        }
     
     
        /* ouverture du fichier de sortie pour l'ecriture */
        /**************************************************/
     
        if ((out = fopen( OUT, "wt")) == NULL)
        {
             printf( "Impossible de creer %s", OUT);
             /* -TC- Force le programme à terminer si l'ouverture a échoué,
                        ou alors essaie une nouvelle fois */
              exit(EXIT_FAILURE);
        }
        else
        {
             printf("%s cree et ouvert pour ecriture\n",OUT);
        }
     
        /* -TC-  fread(&nbo, sizeof(int), 1, in) fonctionne également sans utiliser ptr */
        fread (ptr, sizeof(int), 1, in); /* -TC- Tu avais écrit fread (ptr, int, 1, in); ERREUR au 2e argument */
        fwrite (ptr, sizeof(int), 1, out);
     
     
        fclose(in);
        /* -TC- N'oublie pas de fermer le flux out également */
        fclose(out);
     
        return 0;
    }
    Salutations et bonne chance

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  16. #16
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par sone47
    Merci beaucoup de m'aider.
    J'ai fais comme vous m'avez indiqué (il est vrai que c'est plus clair) mais:
    si je rentre 1 pour le nbr de caractere lu et écrit, cela m'en écrit 4 en sortie
    si je rentre une autre valeur que 1, j'ai une erreur á l'exécution.

    Lorsqe l'on définit en binaire, quelle est la différence avec ces deux fonctions?
    Merci encore
    Une valeur de type int, sur ma machine, mesure 4 octets. Tu écris donc effectivement 4 octets dans ton fichier out, vu que sizeof(int) vaut 4 (dépendant de la machine).

    La différence entre quelles fonctions? fread et fwrite? Clair, non?

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Par défaut
    Merci pour ces explications.
    Mais je ne comprend pas pourquoi il écrit 4 caracteres en sortie alors que l'on a bien spécifier 1. Et pourquoi je ne peux mettre que 1 car sinon j'ai l'erreur d'execution sur la mémoire qui ne peut etre lu.
    Merci

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Par défaut
    La difference entre une lecture texte et une lecture binaire

  19. #19
    Membre Expert Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par défaut
    Citation Envoyé par sone47
    Merci pour ces explications.
    Mais je ne comprend pas pourquoi il écrit 4 caracteres en sortie alors que l'on a bien spécifier 1. Et pourquoi je ne peux mettre que 1 car sinon j'ai l'erreur d'execution sur la mémoire qui ne peut etre lu.
    Merci
    Ton pointeur ptr pointe sur 1 entier. Donc, tu ne peux y stocker qu'un seul entier. Quand tu demandes à fread d'y faire rentrer 10 entiers par exemple, il ne peut pas et une erreur est générée.

    Citation Envoyé par man
    fread et fwrite renvoient le nombre d'éléments correctement lus ou écrits (et non pas le nombre d'octets).
    C'est quoi le 4 dont tu parles ? Tu l'as vu où ?

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Par défaut
    Dans mon fichier d'entrée j'ai une suite nombre et en sortie il écrit 4 chiffres c'est pour cela, si je veux les écrire un par un quel taille dois je alors spécifier?
    merci

Discussions similaires

  1. prblme de lecture avec fread ... etrange...
    Par toto4650 dans le forum MFC
    Réponses: 14
    Dernier message: 28/07/2005, 17h58
  2. problème de fread
    Par _ky_ dans le forum C
    Réponses: 6
    Dernier message: 10/09/2004, 14h45
  3. fread et mem
    Par drKzs dans le forum C
    Réponses: 9
    Dernier message: 29/09/2003, 16h17
  4. [fread] Problème de lecture de buffer
    Par karl3i dans le forum C
    Réponses: 2
    Dernier message: 25/09/2003, 09h21
  5. fwrite et fread
    Par bohemianvirtual dans le forum C
    Réponses: 5
    Dernier message: 05/06/2002, 12h24

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