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

Langage C++ Discussion :

Comment écrire un "string" dans un fichier binaire


Sujet :

Langage C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 60
    Points : 40
    Points
    40
    Par défaut Comment écrire un "string" dans un fichier binaire
    Bonjour,

    J'ai ouvert un fichier binaire et je tente de lire/écrire une
    chaine de caractères comme:
    J'arrive à lire/écrire des chaines de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    file.write(s,5);
    file.read(s,5)
    mais je n'arrive pas avec un string.

    Est ce que quelqu'un pourrait me donner un exemple ?
    Merci par avance.

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 629
    Points : 30 692
    Points
    30 692
    Par défaut
    Salut,
    Citation Envoyé par debutant100 Voir le message
    Bonjour,

    J'ai ouvert un fichier binaire et je tente de lire/écrire une
    chaine de caractères comme:
    J'arrive à lire/écrire des chaines de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    file.write(s,5);
    file.read(s,5)
    mais je n'arrive pas avec un string.

    Est ce que quelqu'un pourrait me donner un exemple ?
    Merci par avance.
    En utilisant la fonction c_str() de la classe string (qui renvoie une chaine "C style") et en se basant sur cette entrée de la faq

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 60
    Points : 40
    Points
    40
    Par défaut
    Merci pour la réponse.

    oui ca marche bien en écriture avec la méthode c_str():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    std::string s = "toto";
    file.write(s.c_str(),s.size()+1);
    en lecture ca marche avec l'opérateur >>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    std::string s;
    file >> s;
    ou avec les chaines:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char* s = new char[5];
    file.read(ss,5);
    Par contre, en lecture, avec la méthode read et un string ça ne marche pas ...

  4. #4
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 629
    Points : 30 692
    Points
    30 692
    Par défaut
    Citation Envoyé par debutant100 Voir le message
    Merci pour la réponse.

    oui ca marche bien en écriture avec la méthode c_str():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    std::string s = "toto";
    file.write(s.c_str(),s.size()+1);
    en lecture ca marche avec l'opérateur >>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    std::string s;
    file >> s;
    Attention, l'opérateur >> est une entrée formatée, à réserver aux flux qui le sont (typiquement, à quand on a, effectivement, un flux qui prend la forme d'un texte)
    ou avec les chaines:
    Les std::string ne sont pas faites pour lire des fichiers binaires (j'ai l'impression de me répéter ces temps ci )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char* s = new char[5];
    file.read(ss,5);
    Par contre, en lecture, avec la méthode read et un string ça ne marche pas ...
    As tu fais un tour du coté de la FAQ , j'ai déjà donné le lien, n'était ce pas à toi

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    c'est ce que je cherche,ouvrir un fichier en binaire et récupérer son contenu dans un string;faire des traitement puis stocker le stringRésultat.
    (en binaire puisque c'est des fichier textes contenant tout genre de caractéres spéciaux )

    donne moi stp; le début du programme(ouverture des fichiers en binaire)

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/12/2008, 10h05
  2. Réponses: 3
    Dernier message: 15/03/2007, 09h04
  3. Comment écrire une très longue variable dans un fichier ?
    Par hijodelanoche dans le forum Langage
    Réponses: 8
    Dernier message: 17/11/2005, 16h12

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