Base de travail: Le programme exemple

Voici le source d'un programme qui vous servira de base de travail.

		=====================================================================================
* 
*  Nom de Fichier:  fichierTexte.cpp
* 
*     Description:  Illustration de l'utilisation des fichiers textes 
*         Version:  1.0
*         Créé le:  04.09.2005 06:24:20 CEST
*        Révision:  none
*     Compilateur:  gcc
* 
*          Auteurs:  Legrand() && Thomassin ()
*    Organisation:  STS Info Gap
* 
* =====================================================================================
*/

#include <fstream>//pour ifstream et ofstream
#include <iostream>//pour cin et cout
#include <string>// pour string
#include <vector>

#define NOMDUFICHIER "adresse.txt"

using namespace std;

vector <string> split(char separateur, string chaineASplitter)
{
	//cette fonction renvoie un vecteur contenant les différents elts de la chaine
	//ces elts sont séparés dans la chaine par le séparateur spécifié en paramétre
	string elt="";
	vector <string> vectElts;
	for (uint no=0; no<chaineASplitter.length();no++)
	{
		char caracExamine=chaineASplitter[no];
		if (caracExamine==separateur)
		{
			vectElts.push_back(elt);
			elt="";
		}
		else
			elt+=caracExamine;
	}
	if(chaineASplitter!="")
			vectElts.push_back(elt);
	return vectElts;
}

void affFichier(string nom)
{
	int nombreDeLignes=0;
	string ligneLue;
	//ouverture en mode lecture
	ifstream ifsAdresse(nom.c_str());
	//si l'ouverture a été effectuée avec succés
	if(!ifsAdresse.fail())
	{
		getline(ifsAdresse,ligneLue);
		//j'efface l'écran
		system("clear");
		//boucle de lecture
		////sortie qd eof ou i=10
		//tant que non condition de sortie
		while (!(ifsAdresse.eof() || (nombreDeLignes==10)))
		{
			cout<<ligneLue<<endl; 
			getline(ifsAdresse,ligneLue);
			nombreDeLignes++;
		}
		ifsAdresse.close();
		cout<<"Nous avons lu "<<nombreDeLignes<<" lignes dans le fichier adresse.txt."<<endl;
	}
	else cout<<"l'ouverture du fichier "<<NOMDUFICHIER<<" a échouée."<<endl;
}

int main()
{
	//ouverture du fichier en création 
	ofstream ofsAdresse (NOMDUFICHIER);
	//on y met deux petites lignes
	ofsAdresse<<"Mathieu Legrand"<<endl;
	ofsAdresse<<"Raoul Petit"<<endl;
	
	//fermeture du fichier
	ofsAdresse.close();
	//affichage du fichier 
	affFichier(NOMDUFICHIER); 
	
	//maintenant nous allons rajouter une ligne dans le fichier
	//j'ouvre mon fichier en mode ajout
	ofsAdresse.open(NOMDUFICHIER,ios::app);
	//j'organise la saisie de la ligne à écrire:
	cout<<"Veuillez saisir la ligne à rajouter"<<endl;
	string ligneARajouter;
	getline(cin,ligneARajouter);
	//on ajoute la ligne dans le fichier
	ofsAdresse<<ligneARajouter<<endl;
	//puis on refait l'affichage du contenu du fichier 
	affFichier(NOMDUFICHIER);
	vector <string> monVecteur;
	monVecteur=split(';',ligneARajouter);
	//parcours du vecteur:
	for(uint no =0; no<monVecteur.size();no++)<
	{
		cout<<monVecteur[no]<<endl;
	}
}