Lecture d'un fichier
Résolu
Magicalcaptnn
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
Magicalcaptnn Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Magicalcaptnn Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
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
- Comment ouvrir un 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.