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

SL & STL C++ Discussion :

Problème de lecture de fin de ligne en caractère par caractère


Sujet :

SL & STL C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Par défaut Problème de lecture de fin de ligne en caractère par caractère
    Bonjour à tous,

    Le but de mon code est de lire dans une ligne d'un fichier des formules qui sont séparées entre elles par des tabulations. Ces formules pouvant contenir des espaces, je ne peux utiliser de flux de string. Je suis donc obligé de lire caractère par caractère, et de détecter une tabulation ou bien la fin de la ligne pour pour rassembler les caractères lus dans une string qui représente la formule.

    Voici 2 versions de mon 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
     
    string temp;   
    string ligne;
    char c;
     
    getline(fichier, ligne);
    istringstream iss(ligne);
     
    while (c = iss.get())
         {
             if (c == '\t')
             {
                cout << " " << temp << " ";                
                tableau_formules.push_back(temp);
                temp.clear();
             }
             else if (c == '\n')
             {
                cout << " " << temp << " ";                
                tableau_formules.push_back(temp);
                temp.clear();
                break;
             }
             else 
             {
                cout << c;
                temp.push_back(c);
             }
        }
    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
     
    while ((c = fichier.get()) != '\n')
         {
             cout << c << " ";
             temp.clear();
             temp.push_back(c);
             while ((c = iss.get()) != '\t') 
             {
                 cout << c;
                 if (c == '\n') 
                    break;
                 else
                     temp.push_back(c);
             }
             cout << temp << " ";                
             tableau_formules.push_back(temp);    
         }
    A chaque fois, mon code n'arrive pas à détecter la fin et continue à écrire (des espaces) sans fin sur la ligne de commande.

    Merci de m'aider.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Par défaut
    bon désolé d'avoir posté pour rien lol, il suffisait juste d'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    while (iss.get(c))
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    while (c = iss.get())
    J'ai finalement décidé de laisser le post parce que çà peut aider ceux qui veulent faire le même genre de travail que cet exemple.

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

Discussions similaires

  1. [Débutant] Lecture caractère par caractère
    Par boober31 dans le forum Débuter
    Réponses: 10
    Dernier message: 28/09/2007, 14h52
  2. Problème de lecture de XML en ligne
    Par Jenkai dans le forum Flash
    Réponses: 1
    Dernier message: 02/09/2007, 19h00
  3. Problème de lecture de fin de fichier (eof(fichier))
    Par jailbomba dans le forum Pascal
    Réponses: 2
    Dernier message: 21/02/2007, 16h50
  4. Réponses: 18
    Dernier message: 17/01/2007, 12h49
  5. [Debutant] Lecture de fin de ligne StreamTokenizer
    Par Ubum dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 26/02/2006, 14h36

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