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 std::string


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Laughing Man
    Profil pro
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Par défaut Problème avec std::string
    Salut à tous.

    J'ai donc un petit soucis de gestion avec des objets de type string.

    Au départ, je lis un fichier (ifstream) grâce à la méthode getline().
    Le fichier est composé de deux ou trois lignes ( dépend du fichier ).
    Ensuite, je réécris la ligne avec un simple << (dans un ofstream).
    Le problème, c'est que j'arrive pas à me "défaire" des end of line.

    Pour clarifier la chose, voilà:
    - exemple de fichier d'entrée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    0.0000000
    -230
    13
    - mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [...]
    while(getline(fichier_entree,ligne2))
    			{
                          		fichier_sortie << ligne2 << separateur;
    			}
    			fichier_sortie << endl;
    [...]
    - ce que j'obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    0.0000000	
    -230	
    13
    En fait j'arrive pas à mettre les données du fichier de sortie sur une seule ligne...
    Toute suggestion est la bienvenue...

  2. #2
    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
    Tu as ouvert le fichier en mode binaire ?
    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...

  3. #3
    Membre confirmé Avatar de Laughing Man
    Profil pro
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Par défaut
    oui g ouvert le fichier de sortie en binaire.
    Il faut aussi ouvrir celui d'entrée en binaire?

  4. #4
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    je pense pas...

    Une question toute bête, quel est le contenu de separateur?

  5. #5
    Membre confirmé Avatar de Laughing Man
    Profil pro
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Par défaut
    Il contient '\t' et le problème n'est pas censé venir de là, j'ai déjà écris des fichiers de cette manière. Mais là le regroupement de lignes, sa m'échappe.
    Si je pouvais éviter de taper dans des FILE* et de traiter des char*:p

  6. #6
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    Sous linux, que tu ouvres les fichiers en binaire ou pas, ça change rien normalement ^^

    Franchement le seul problème que je voie et qui ne causerait pas forcément une erreur, c'est si les fichiers que t'ouvre ont été édités sur Windows.

    A tout hasard, essaie (pour débugger):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while(getline(fichier_entree,ligne2))
    			{
                          		fichier_sortie << ligne2 << "--" << separateur << " -- longueur: " << ligne2.length() << " -- ";
    			}
    			fichier_sortie << endl;
    Comme ça on voit précisément où s'est faite la coupure, et si il n'y a pas de \r cachés dans ton fichier_entree.

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

Discussions similaires

  1. Problème avec std::string
    Par Gobelins dans le forum Débuter
    Réponses: 8
    Dernier message: 03/01/2011, 08h57
  2. problème avec std::string
    Par haraelendil dans le forum Langage
    Réponses: 10
    Dernier message: 25/06/2010, 18h56
  3. problème avec std::string:find()
    Par Spidyy dans le forum SL & STL
    Réponses: 8
    Dernier message: 03/09/2009, 01h25
  4. Sale problème avec les strings et les fichiers
    Par acieroid dans le forum C++
    Réponses: 18
    Dernier message: 26/04/2006, 09h47
  5. Problème avec std::Vector
    Par mister3957 dans le forum SL & STL
    Réponses: 8
    Dernier message: 16/02/2006, 10h18

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