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