Exercices en langage C++/Les fichiers
Exercices en langage C++ |
---|
Sommaire |
|
Liens |
Modifier ce modèle |
Les fichiers : Lecture et écriture en mode texte
[modifier | modifier le wikicode]EXERCICE 1
[modifier | modifier le wikicode]Écrire un programme qui écrit dans le fichier example.txt le texte:
Hello world!
Voici un programme illustrant l'écriture dans un fichier
Cet exercice a pour but de vérifier les points techniques suivants :
- L'ouverture d'un fichier en écriture
- Tester si un fichier est ouvert (en particulier si vous avez les droits d'écriture sur le fichier)
- Fermer le fichier une fois l'écriture terminée
Voici le fichier source :
#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
[modifier | modifier le wikicode]Écrire un programme qui lit le fichier example.txt définit dans l'exemple précédent et affiche son contenu :
Vous devriez obtenir :
Hello world!
Voici un programme illustrant l'écriture dans un fichier
Cet exercice a pour but de vérifier les points techniques suivants :
- L'ouverture d'un fichier en lecture
- Tester si un fichier est ouvert (en particulier si vous avez les droits de lecture sur le fichier)
- Parcourir dans son intégralité un fichier
- Fermer le fichier une fois la lecture terminée
Voici le fichier source :
#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;
}
Les fichiers : Lecture et écriture en mode binaire
[modifier | modifier le wikicode]EXERCICE 1
[modifier | modifier le wikicode]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
Cet exercice a pour but de vérifier les points techniques suivants :
- L'ouverture d'un fichier en écriture en mode binaire
- Tester si un fichier est ouvert (en particulier si vous avez les droits d'écriture sur le fichier)
- Écrire des données en binaire
- Fermer le fichier une fois l'écriture terminée
Voici le fichier source :
#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 2
[modifier | modifier le wikicode]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
Cet exercice a pour but de vérifier les points techniques suivants :
- L'ouverture d'un fichier en lecture en mode binaire
- Tester si un fichier est ouvert (en particulier si vous avez les droits de lecture sur le fichier)
- Lecture des données écrites en binaire
- Fermer le fichier une fois la lecture terminée
Voici le fichier source :
#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;
}