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 :

Lecture d'un fichier par flots : fin de ligne ?


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 123
    Points : 100
    Points
    100
    Par défaut Lecture d'un fichier par flots : fin de ligne ?
    Bonjour,

    ma question est simplissime :
    comment détecter la fin d'une ligne lors de la lecture d'un fichier texte par flots ?
    En fait j'aimerais lire les entiers successifs d'une ligne et les stocker dans un vecteur, et donc je dois m'arrêter à la fin de la ligne. Comment faire ?

    Voici la lecture en boucle que j'utilise et qui ne détecte pas bien sûr la fin des lignes...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ifstream fichier("./data");
    	if (fichier.bad())
    	{cout << "Fichier inexistant" << endl;}
     
     
    	while (!fichier.eof())
    	{		
    		int a;
    		fichier.get
    		fichier >> a;
    		cout << a << " ";
    	}
    Merci de votre aide !

    PS : le nombre d'entiers par lignes n'est pas connu et n'est pas fixe d'une ligne à l'autre.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Tout simplement en lisant ton fichier ligne par ligne avec la fonction getline(fichier, string). Ensuite, tu batis un ostringstream par dessus ton string et tu extraits les entiers les uns après les autres.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 123
    Points : 100
    Points
    100
    Par défaut
    Ah en effet, merci beaucoup de ton aide.
    Je connais pas assez les différentes classes du C++.
    Du coup, je ne sais pas comment repérer la fin d'un stringstream. Comment je détecte que je l'ai vidé ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    C'est expliqué dans la faq.
    Tu sais, moi aussi je connais mal les flux de la stl, je trouve qu'ils sont fort compliqués pour bien peu de choses, alors je ne me donne pas la peine de les apprendre par coeur. En général pour lire, soit j'utilise getline() sur un istream, soit j'utilise un buffer directement pour pouvoir faire de la lecture caractère par caractère, le code est plus long mais je sais exactement ce que je fais.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 123
    Points : 100
    Points
    100
    Par défaut
    Ok merci, j'ai trouvé ce que je cherchais.
    Mais j'avais un problème de double qui restait dans mon stream et qui m'empêchait de le reremplir... J'ai fait un .clear() et c'est bon !

Discussions similaires

  1. lecture d'un fichier par plusieurs thread
    Par LastSpear dans le forum Bibliothèque standard
    Réponses: 2
    Dernier message: 22/12/2010, 16h17
  2. Lecture d'un fichier par plusieurs threads
    Par vinzzzz dans le forum Général Java
    Réponses: 7
    Dernier message: 09/10/2009, 16h09
  3. lecture dans un fichier par bloc
    Par danathane dans le forum Langage
    Réponses: 1
    Dernier message: 15/12/2008, 11h02
  4. lecture ecriture de fichier par blocs
    Par pfeuh dans le forum C
    Réponses: 10
    Dernier message: 06/11/2008, 10h48
  5. Lire un fichier par la fin
    Par romaintaz dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 22/01/2007, 16h40

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