Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2988 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Probéme de codage pour lire la taille de fichier texte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probéme de codage pour lire la taille de fichier texte

n°2217544
xfreekingx
Posté le 25-01-2014 à 18:28:58  profilanswer
 

Bonsoir a tous et a toutes,
 
Voila, comme le nom du topique l'indique j'ai un petit problème avec mon code source. Je voudrais lire un fichier txt et afficher a la fin sa taille.
Voici donc mon code:
 
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
 
   ifstream fichier("fichierscores.txt" );
   if(fichier)
   {
       string ligne;
       while(getline(fichier,ligne))
       {
           cout << ligne << endl;
       }
       fichier.seekg( 0 , ios::end);
       int position(0);
       position = fichier.tellg();
       cout << "Fichier de " << position << "octets" << endl;
   }
   else
   {
       cout << "Un probleme est survenu!!";
   }
    return 0;
}

 
Le soucis est que sa me marque : Fichier de -1 octes.
Par contre si je n'utilise pas la boucle et donc ne le lit pas, sa  marche.
Du coup pour faire ce que je voulais j'ai fait :
 
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
 
   ifstream fichier("fichierscores.txt" );
   if(fichier)
   
       string ligne;

      fichier.seekg( 0 , ios::end);
       int position(0);
       position = fichier.tellg();
       fichier.seekg(0, ios::beg);

      while(getline(fichier,ligne))
       {
           cout << ligne << endl;
       }
 
       cout << "Fichier de " << position << "octets" << endl;
   }
   else
   {
       cout << "Un probleme est survenu!!";
   }
    return 0;
}

Maintenant sa marche, mais je ne comprend toujours pas pourquoi le premier code etait faux.
Quelqu’un pourrait il m'eclairer?
Merci.
 
 
 
 

mood
Publicité
Posté le 25-01-2014 à 18:28:58  profilanswer
 

n°2217558
olivthill
Posté le 26-01-2014 à 10:48:42  profilanswer
 

C'est parce que la fonction getline() génère une exception eofbit quand la fin de fichier est atteinte. Cette exception est de type ios_base::failure, dont l'implémentation dépend du système.

n°2217563
xfreekingx
Posté le 26-01-2014 à 11:56:28  profilanswer
 

ok, merci olivthill. J vais regarder de plus prés comment marche cette exception.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Probéme de codage pour lire la taille de fichier texte

 

Sujets relatifs
taille d'une page mémoireBesoin d'aide pour fichier gestion absence en VBA
javascript : window.onerror lire le code jetant une erreurInjecter un fichier CSV avec un script php
Décompresser un fichier son[résolu] découper un fichier selon contenu de la ligne
probleme de taille d'un tableau excel envoyé par mailphp performance flush or lecture d'un fichier de cache
Decompresser un fichier tar.gz avec du vbs 
Plus de sujets relatifs à : Probéme de codage pour lire la taille de fichier texte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR