Un repertoire telephonique avec la classe fstream

Contenu du snippet

permet de montrer comment lire/ecrire dans un fichier avec les methodes de la classe fstream et en plus y a des petites fonctions sympas comme la recherche d un nom par le numero et vice versa...

Source / Exemple :


#include <iostream>
#include <stdlib.h>
#include <string>
#include <conio.c>
#include <fstream>
using namespace std;

void fonction_numero_par_nom()
{
                          clrscr();
                          string ligne_lue;
                          ifstream rep;
                          rep.open("repertoire");
                          if(rep.good())
                          {
                          bool trouve=false;
                          string numero;
                          string personne;
                          int i;
                          cout<<"Entrez le nom : ";
                          cin>>personne;
                          while(rep>>ligne_lue)
                          {
                          i=0;
                                               while(ligne_lue.substr(i,1)!=":")
                                               {
                                               i++;
                                               }
                                               if((ligne_lue.substr(0,i))==personne)
                                               {
                                               numero=ligne_lue.substr(i+1,10);
                                               cout<<"Le numero de "<<personne<<" est: "<<numero<<".\n\n"<<endl;
                                               trouve=true;
                                               }
                          }
                          if(trouve==false)
                          cout<<"Aucune numero n'est associe a "<<personne<<"...\n\n"<<endl;
                          rep.close();
                          }
                          else
                          {
                          cerr<<"Erreur d'ouverture du fichier";
                          }
}

void fonction_nom_par_numero()
{
                          clrscr();
                          string ligne_lue;
                          ifstream rep;
                          rep.open("repertoire");
                          if(rep.good())
                          {
                          bool trouve=false;
                          string numero;
                          string personne;
                          int i;
                          cout<<"Entrez le numero (sans espaces...) : ";
                          cin>>numero;
                          while(rep>>ligne_lue)
                          {
                          i=0;
                                               while(ligne_lue.substr(i,1)!=":")
                                               {
                                               i++;
                                               }
                                               if((ligne_lue.substr(i+1,10))==numero)
                                               {
                                               personne=ligne_lue.substr(0,i);
                                               cout<<"Le numero "<<numero<<" est asocie a "<<personne<<".\n\n"<<endl;
                                               trouve=true;
                                               }
                          }
                          if(trouve==false)
                          cout<<"Aucune personne n'est associee au numero"<<numero<<"...\n\n"<<endl;
                          rep.close();
                          }
                          else
                          {
                          cerr<<"Erreur d'ouverture du fichier";
                          }
}

void fonction_afficher_tout()
{
                          clrscr();
                          ifstream rep;
                          rep.open("repertoire");
                          if(rep.good())
                          {
                          string ligne_lue;
                          string personne;
                          string numero;
                          int i=0;
                          int j=0;
                          while(rep>>ligne_lue)
                          {
                                               while(ligne_lue.substr(j,1)!=":")
                                               {
                                               j++;
                                               }
                                               numero=ligne_lue.substr(j+1,10);
                                               personne=ligne_lue.substr(0,j);
                                               gotoxy(0,i+1);
                                               cout<<"Entree n ";
                                               gotoxy(10,i+1);
                                               cout<<i+1<<endl;
                                               gotoxy(13,i+1);
                                               cout<<personne<<endl;
                                               gotoxy(35,i+1);
                                               cout<<numero<<endl;
                                               i++;
                          }
                          gotoxy(1,i+2);
                          if(i==0)
                          cout<<"\nIl n'y a aucune entree dans le repertoire\n\n"<<endl;
                          else if(i==1)
                          cout<<"\nIl n'y a qu'une entree dans le repertoire\n\n"<<endl;
                          else
                          cout<<"\nIl y a "<<i<<" entrees dans le repertoire\n\n"<<endl;
                          rep.close();
                          }
                          else
                          {
                          cerr<<"Erreur d'ouverture du fichier";
                          }
}

void fonction_ajouter_entree()
{
                          ofstream rep;
                          rep.open("repertoire",ios::app);
                          if(rep.good())
                          {
                          string personne,numero;
                          cout<<"Entrez le nom: ";
                          cin>>personne;
                          cout<<"Entrez le numero: ";
                          cin>>numero;
                          rep<<personne<<":"<<numero<<endl;
                          cout<<"\n\n"<<endl;
                          rep.close();
                          }
                          else
                          {
                          cerr<<"Erreur d'ouverture du fichier";
                          }
}

void main()
{
	unsigned short choix;
    do{
       cout<<"Que voulez vous faire ?"<<endl;
       cout<<"1.Chercher un numero par le nom"<<endl;
       cout<<"2.Chercher un nom par le numero"<<endl;
       cout<<"3.Afficher l'integralite du repertoire"<<endl;
       cout<<"4.Ajouter une entree"<<endl;
       cout<<"5.Quitter"<<endl;
       cin>>choix;
       switch(choix)
       {
       case 1: fonction_numero_par_nom(); break;
       case 2: fonction_nom_par_numero(); break;
       case 3: fonction_afficher_tout(); break;
       case 4: fonction_ajouter_entree(); break;
       case 5: exit(0); break;
       default: clrscr; cout<<"Mauvais choix\n\n"<<endl; break;
       }
   }while(choix!=5);
 }

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.