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 avec des fichiers


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 80
    Points : 63
    Points
    63
    Par défaut Problème avec des fichiers
    Bonjour,
    Alors je cherche a savoir pourquoi, quand on inscrit 26 en binaire dans fichier de type fstream, la lecture de ce meme fichier il s'arret apres ce caractère meme si y en a d'aute apres.

    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
     
    #include <iostream>
    #include <stdlib.h>
    #include <stdio.h>
    #include <string>
    #include <map>
    #include <windows.h>
    #include <conio.h>
    #include <fstream>
    using namespace std;
     
    int main()
    {
           fstream file("c:\\pb.txt",fstream::out);
           file.put(6);
           file.put(50);
           file.put(26);// donc si on met 6 il affiche 4 caractère mais si on met
           file.put(16);// 26 il en met que deux
           file.close();
           file.open("c:\\pb.txt",fstream::in);
           string x;
           getline(file,x);// ce marcherai avec un get() et une boucle
           cout<<x<<endl;
           file.close();
           system("pause");
           return 0;
    }
    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    26, c'est pas justement le caractère EOF ? (ou bien EOT, je ne sais plus si c'est le même ou deux caractères différents).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    EOF n'est pas un caractere (comprendre il ne fait pas parti de la table ascii), il n'est d'ailleurs pas codable sur un char c'est pour cela que les fonctions du type fgetc retourne un entier.

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Je sais qu'il y a un caractère End-Of-quelquechose dans les 32 premiers...

    Ou bien, j'ai une seconde piste: 26, il me semble bien que c'est "Ctrl-Z", caractère de "fin de fichier texte" sous DOS...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 80
    Points : 63
    Points
    63
    Par défaut
    En regardant sur une table ASCII le 26 c'est "->", SUB.

    Alors y aurait-il une solution ? , ou alors devrais-je changer de de type de variable passer a FILE * ( en C ) ?

    Merci de vote aide.

  6. #6
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    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 275
    Points : 10 985
    Points
    10 985
    Par défaut
    -> std::ios_base::binary ?

    Et pourquoi tous ces fichiers d'en-tête qui ne servent à rien ?
    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 du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 80
    Points : 63
    Points
    63
    Par défaut
    Il faut mettre fstream::binary pour l'ouverture du fichier, je vai essayer.
    En fait les entete c'est dans le generation du fichier source comme j'ai la fleme de retaper les entetes je les ai mis.

    Je vais essayer.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 80
    Points : 63
    Points
    63
    Par défaut
    Bon bien ca marche avec ios_base::binary.
    Merci bien.

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

Discussions similaires

  1. problème avec des fichiers compressés
    Par tiloup367 dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 27/04/2015, 06h10
  2. Problème avec des fichiers frm
    Par lelectronique.com dans le forum MySQL
    Réponses: 7
    Dernier message: 15/01/2009, 14h16
  3. Problème avec des fichiers audios
    Par ksper92 dans le forum Flash
    Réponses: 1
    Dernier message: 24/01/2007, 18h38
  4. [vb.net]Problème avec des fichiers DLL
    Par nakata77 dans le forum VB.NET
    Réponses: 1
    Dernier message: 20/09/2006, 18h40
  5. fichier .bat : problèmes avec des sous-répertoires
    Par aymron dans le forum Windows
    Réponses: 4
    Dernier message: 23/06/2005, 09h33

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