Lecture d'un fichier
Résolu
Magicalcaptnn
Messages postés
9
Statut
Membre
-
Magicalcaptnn Messages postés 9 Statut Membre -
Magicalcaptnn Messages postés 9 Statut Membre -
Bonjour,
J'ai actuellement un problème lors de la lecture d'un fichier. Apprenant le C++, j'ai voulu que mon programme lise un fichier caractère par caractère puis ligne par ligne, malheureusement il n'effectue pas la deuxième lecture. Voici mon code:
J'espère que vous pourrez m'aider.
Merci d'avance.
Cordialement,
MagicalCaptn
J'ai actuellement un problème lors de la lecture d'un fichier. Apprenant le C++, j'ai voulu que mon programme lise un fichier caractère par caractère puis ligne par ligne, malheureusement il n'effectue pas la deuxième lecture. Voici mon code:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream fileW;
fileW.open("text.txt");
if(fileW)
{
for(int i = 0; i < 5; i++)
{
fileW << "Test fichier" << endl;
}
fileW.close();
}
else
{
cout << "FATAL ERROR: Can not open the file" << endl;
}
ifstream fileR;
fileR.open("text.txt");
if(fileR)
{
char c;
string line;
while(fileR.get(c))
{
cout << c;
}
cout << fileR.tellg() << endl;
fileR.seekg(0, ios::beg);
while(getline(fileR, line))
{
cout << line << endl;
}
fileR.close();
}
else
{
cout << "FATAL ERROR: Can not open the file" << endl;
}
return 0;
}
J'espère que vous pourrez m'aider.
Merci d'avance.
Cordialement,
MagicalCaptn
A voir également:
- Lecture d'un fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
1 réponse
Bonsoir,
Voici un code qui, à mon avis, fait ce que vous cherchez.
EchoIsON.
Voici un code qui, à mon avis, fait ce que vous cherchez.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string const nomC("text.txt");
ofstream fileW(nomC.c_str());
if(fileW)
{
fileW << "Test fichier" << endl;
}
else
{
cout << "FATAL ERROR: Cannot open the file." << endl;
}
ifstream fileR; //Un flux vide
if(fileR)
{
fileR.open("text.txt"); //On ouvre le flux text.txt pour permettre au programme de lire dedans
char c;
string ligne;
while(fileR.get(c))
{
cout << c; //Par caractère
}
fileR.close(); //Attention : on referme pour libérer la mémoire, sinon getline() ne pourra pas le lire, d'où votre erreur
fileR.open("text.txt"); //On rouvre, et on lit par lignes
while(getline(fileR, ligne))
{
cout << ligne<< endl; //Par lignes
}
fileR.close(); //On referme
}
else
{
cout << "FATAL ERROR: Cannot open the file." << endl;
}
return 0;
/*
* Ainsi, les deux sont bien affichés, pour en avoir le coeur net, ajoutez un "endl;" à l'affichage par caractères
*/
}
EchoIsON.
Sujet résolu.