Exercices corrigés en langage C++ : Les fichiers
Exercice 1 :
Correction exercice 1 :
Exercice 2 :
Correction exercice 2 :
Exercice 3 :
Correction exercice 3 :
Exercice 4 :
Correction exercice 4 :
Exercice 1 :
Ecrire un programme qui écrit dans le fichier exemple.txt le texte:
Hello world! Voici un programme illustrant l'écriture dans un fichier
Correction exercice 1 :
#include <iostream> #include <fstream> int main (int argc, char * argv[]) { std::ofstream myfile; char * filename = "example.txt"; myfile.open (filename, std::ios::out); if(myfile.is_open()) { myfile << "Hello world \n"; myfile << "Voici un programme illustrant l'écriture dans un fichier \n"; } else { std::cout << "Erreur à l'ouverture du fichier "<< filename << std::endl; } myfile.close(); return 0; }
Exercice 2 :
Ecrire un programme qui lit le fichier example.txt définit dans l'exemple précédent et affiche son contenu :
Vous devriez obtenir :
Vous devriez obtenir :
Hello world! Voici un programme illustrant l'écriture dans un fichier
#include <iostream> #include <fstream> #include <string> int main () { std::string line; char * filename = "example.txt"; std::ifstream myfile (filename, std::ios::in); if (myfile.is_open()) { while (! myfile.eof() ) { getline (myfile,line); std::cout << line << std::endl; } myfile.close(); } else std::cout << "Erreur à l'ouverture du fichier " << filename << std::endl;; return 0; }
Exercice 3 :
Proposez un programme qui écrit en binaire une chaîne de caractère suivant de la liste des entiers de 0 à 1000 :
Liste des entiers de 1 à 1000 0 1 2 ... 1000
Correction exercice 3 :
#include <iostream> #include <fstream> int main (int argc, char * argv[]) { std::ofstream myfile; char * filename = "exampleBinary.txt"; myfile.open (filename, std::ios::out | std::ios::binary); if(myfile.is_open()) { myfile.write("Liste des entiers de 1 à 1000",29*sizeof(char)); for(int i = 0 ; i <= 1000 ; i++) { myfile.write((char*)&i,sizeof(int)); } } else { std::cout << "Erreur à l'ouverture du fichier "<< filename << std::endl; } myfile.close(); return 0; }
Exercice 4 :
Proposez un programme qui lit le fichier écrit en binaire de l'exercice précédent et affiche son contenu. Vous devriez obtenir :
Liste des entiers de 1 à 1000 0 1 2 ... 1000
Correction exercice 4 :
#include <iostream> #include <fstream> int main (int argc, char * argv[]) { std::ifstream myfile; char * filename = "exampleBinary.txt"; char buffer[29]; int value; myfile.open (filename, std::ios::in | std::ios::binary); if(myfile.is_open()) { myfile.read(buffer,29*sizeof(char)); std::cout << buffer << std::endl; for(int i = 0 ; i <= 1000 ; i++) { myfile.read((char*)&value,sizeof(int)); std::cout << value << std::endl; } } else { std::cout << "Erreur à l'ouverture du fichier "<< filename << std::endl; } myfile.close(); return 0; }
Aucun commentaire:
Enregistrer un commentaire