Thursday, April 3, 2014

Exercices corrigés en langage C++ : Les fichiers

Exercices corrigés en langage C++ : Les fichiers
langage c++
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 :
Hello world!
Voici un programme illustrant l'écriture dans un fichier

Correction exercice 2 : 

#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;
}

No comments:

Post a Comment