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.