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 :

Questions sur fwrite


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Freakazoid
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 116
    Par défaut Questions sur fwrite
    J'ai quelques questions sur le fonctionnement de la fonction fwrite et fread. Je les utilises actuellement pour gerer des fichiers de mon projet et j'ai lu sur un post précédent qu'il existait d'autres librairies qui gere les fichiers (boost je crois). Qu'elle est la difference dans ce cas entre le std et boost pour la gestion de fichier.
    Apres j'ai remarqué quelques truc étrange avec fwrite. J'ecrit la valeur numérique 10 sur un octet, et quand je vérifie avec un editeur hexa je vois deux octect qui sont 0D(13base10) et 0A(10base10). Cela se produit qu'avec le chiffre 10. Ceci etant ce n'est pas très important car quand je lis un octet a cette endroit fread me redonne la valeur 10.
    Un autre truc c la facon dont fwrite écrite une variable. Par exemple pour une variable short int (codé sur 2 octets) fwrite ecrit en 1er le 2eme octet et apres le 1er. Une varaible contennat FF 00 va devenir 00 FF dans un éditeur hexa. Là aussi fread remet sa dans le bon sens et sa fonctionne mais je trouve tout sa bizard, si quelqu'un connait la cause de ces truc chelou.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 77
    Par défaut
    A vue de nez, tout ca se passe sur Windows/MS-DOS.

    Le frwrite de 0A en 0A-OD correspond sans doute à un fopen en mode texte et non binaire, avec le fread aussi en mode texte.

    Pour l'écriture de FF 00 sous la forme 00 FF, ca c'est parce que intel est 'Little endian', le prog écrit les données comme eles sont stockées en mémoire.

  3. #3
    Membre confirmé Avatar de Freakazoid
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 116
    Par défaut
    Okk.
    Effectivement apres quelques testes je me suis rendu compte fwrite avait l'aire d'ecrire en mode texte. Le caractère déchapement '\' correspond à 0D et l'emsemble '\n' (saut de ligne) et representé par 0D 0A. En plus que j'eeais de lire le caractère 0D il passe au suivent donc je ne peux pas stocké la valeur 13.
    De toute facon j'ai resolu le problème en utilisant read et write et open (sans le f) et sa marche nikel !!

  4. #4
    Expert confirmé

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    open, read et write ne sont pas standard il me semble. fopen, fread et fwrite conviennent très bien pour les fichiers binaires (fopen( "wb" ) ). Mais ce sont des fonctions C. Si tu es en C++, il est préférable d'utiliser les flux de <fstream> : ifstream, ofstream, ...

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 258
    Par défaut Re: Questions sur fwrite
    Citation Envoyé par Freakazoid
    J'ai quelques questions sur le fonctionnement de la fonction fwrite et fread. Je les utilises actuellement pour gerer des fichiers de mon projet et j'ai lu sur un post précédent qu'il existait d'autres librairies qui gere les fichiers (boost je crois). Qu'elle est la difference dans ce cas entre le std et boost pour la gestion de fichier.
    Apres j'ai remarqué quelques truc étrange avec fwrite. J'ecrit la valeur numérique 10 sur un octet, et quand je vérifie avec un editeur hexa je vois deux octect qui sont 0D(13base10) et 0A(10base10). Cela se produit qu'avec le chiffre 10. Ceci etant ce n'est pas très important car quand je lis un octet a cette endroit fread me redonne la valeur 10.
    Un autre truc c la facon dont fwrite écrite une variable. Par exemple pour une variable short int (codé sur 2 octets) fwrite ecrit en 1er le 2eme octet et apres le 1er. Une varaible contennat FF 00 va devenir 00 FF dans un éditeur hexa. Là aussi fread remet sa dans le bon sens et sa fonctionne mais je trouve tout sa bizard, si quelqu'un connait la cause de ces truc chelou.
    Bon soit tu fais du C et tu utilises la collection de fonction f....() (fread(), fwrite(), fgets(), fputs(), ...), soit tu fais du C++ et tu utilises la bibliothèque standard *fstream (ifstream, ofstream, ...).
    De plus open(), write() et read() ne sont pas standard, donc code non portable, donc pas bien .

  6. #6
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    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 296
    Par défaut
    Quant à boost::filesystem, cela sert à lister et faire divers tests sur les noms de fichiers et répertoires d'un endroit. Pas à lire et écrire.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  7. #7
    Membre confirmé Avatar de Freakazoid
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 116
    Par défaut
    Okk
    Pour ce qui est de la portabilité de mon code, je n'y accorde pas beaucoup d'importance etant donné que j'utilise DirectX.

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

Discussions similaires

  1. [debutant] Questions sur 1 futur projet
    Par cyrull22 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 28/04/2003, 21h49
  2. Quelques questions sur le TWebBrowser...
    Par CorO dans le forum Web & réseau
    Réponses: 3
    Dernier message: 17/01/2003, 21h23
  3. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  4. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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