Nous allons apprendre dans cette comment créer, lire un fichier txt en C++ et comment supprimer une ligne de ce fichier.
Nous allons créer un projet de gestion des vols, chaque vol a (une ville de départ, une ville d'arrivée, une heure de départ et une heure d'arrivée).
On va créer :
- Une type structure 'Horaire' pour gérer les vols,
- Une procédure 'AjouterVol' permettant d'ajouter un vol au fichier des vols,
- Une procédure 'affiche_vol' qui permettant de lire de le fichier des vols et afficher touts les vols,
- Une procédure 'supprimer_vol' permettant de supprimer un vol.
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int nbVol();
//Type Structure Horaire:
struct Horaire
{
string villeDepart;
string villeArrive;
string heureDepart;
string heureArrive;
};
//procedure ajouterVol:
void AjouterVol(Horaire h){
char path[]="vols.txt";
ofstream fichier;
fichier.open(path,ios::out|ios::app);
fichier << h.villeDepart<<"\t"<< h.villeArrive<<"\t"<< h.heureDepart<<"\t" << h.heureArrive <<endl ;
fichier.close();
}
//procedure affiche_vol:
void affiche_vol(){
char path[]="vols.txt";
string data;
ifstream fichier;
fichier.open(path);
while(! fichier.eof()){
getline(fichier,data);
cout<<data<< endl;
}
fichier.close();
}
//procedure supprimer_vol:
void supprimer_vol(string villeDepart,string villeArrive,string heureDepart,string heureArrive){
int nb=nbVol();
Horaire vol[nb];
string villeD,villeA,heureD,heureA;
fstream fichier("vols.txt");
//charger les vols dans un tableau de type Horaire
int i=0;
while(fichier >> villeD >> villeA >> heureD >> heureA){
vol[i].villeDepart=villeD;
vol[i].villeArrive=villeA;
vol[i].heureDepart=heureD;
vol[i].heureArrive=heureA;
i++;
}
fichier.close();
ofstream file;
//vider le fichier des vols :
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int nbVol();
//Type Structure Horaire:
struct Horaire
{
string villeDepart;
string villeArrive;
string heureDepart;
string heureArrive;
};
//procedure ajouterVol:
void AjouterVol(Horaire h){
char path[]="vols.txt";
ofstream fichier;
fichier.open(path,ios::out|ios::app);
fichier << h.villeDepart<<"\t"<< h.villeArrive<<"\t"<< h.heureDepart<<"\t" << h.heureArrive <<endl ;
fichier.close();
}
//procedure affiche_vol:
void affiche_vol(){
char path[]="vols.txt";
string data;
ifstream fichier;
fichier.open(path);
while(! fichier.eof()){
getline(fichier,data);
cout<<data<< endl;
}
fichier.close();
}
//procedure supprimer_vol:
void supprimer_vol(string villeDepart,string villeArrive,string heureDepart,string heureArrive){
int nb=nbVol();
Horaire vol[nb];
string villeD,villeA,heureD,heureA;
fstream fichier("vols.txt");
//charger les vols dans un tableau de type Horaire
int i=0;
while(fichier >> villeD >> villeA >> heureD >> heureA){
vol[i].villeDepart=villeD;
vol[i].villeArrive=villeA;
vol[i].heureDepart=heureD;
vol[i].heureArrive=heureA;
i++;
}
fichier.close();
ofstream file;
//vider le fichier des vols :
char path[]="vols.txt";
file.open(path);
file <<"";
file.close();
//remplir le fichier par des vols sauf la vol que je veut la supprimer :
file.open(path,ios::app);
for(int j=0; j<nb;j++){
Horaire h;
h.villeDepart=vol[j].villeDepart;
h.villeArrive=vol[j].villeArrive;
h.heureDepart=vol[j].heureDepart;
h.heureArrive=vol[j].heureArrive;
if(h.villeDepart!=villeDepart or h.villeArrive!=villeArrive or h.heureDepart!=heureDepart or h.heureArrive!=heureArrive)
{
file << h.villeDepart<<"\t"<<h.villeArrive<<"\t"<<h.heureDepart<<"\t"<<h.heureArrive<<endl;
}
}
file.close();
}
file.open(path);
file <<"";
file.close();
//remplir le fichier par des vols sauf la vol que je veut la supprimer :
file.open(path,ios::app);
for(int j=0; j<nb;j++){
Horaire h;
h.villeDepart=vol[j].villeDepart;
h.villeArrive=vol[j].villeArrive;
h.heureDepart=vol[j].heureDepart;
h.heureArrive=vol[j].heureArrive;
if(h.villeDepart!=villeDepart or h.villeArrive!=villeArrive or h.heureDepart!=heureDepart or h.heureArrive!=heureArrive)
{
file << h.villeDepart<<"\t"<<h.villeArrive<<"\t"<<h.heureDepart<<"\t"<<h.heureArrive<<endl;
}
}
file.close();
}
//main :
int main(int argc, char *argv[])
{
cout <<"Entrer la ville de départ, ville d'arrivée, heure de départ(hh:mn) et l'heure d'arrivée(hh:mn)"<<endl;
cout<<"Cliquer Ctrl+z+Enter pour terminer"<<endl;
string vd,va,hd,ha;
while(cin>>vd>>va>>hd>>ha){
Horaire h;
h.villeDepart=vd;
h.villeArrive=va;
h.heureDepart=hd;
h.heureArrive=ha;
AjouterVol(h);
}
affiche_vol();
supprimer_vol("Paris","Dubai","15:00","20:00");
system("PAUSE");
return EXIT_SUCCESS;
}
//fonction qui retourne le nombre total des vols dans mon fichier texte,
//j'ai la besoin dans la procedure supprimer_vol et trie_vol
int nbVol(){
int nb=0;
char path[]="vols.txt";
string data;
ifstream fichier;
fichier.open(path);
while(! fichier.eof()){
getline(fichier,data);
nb++;
}
fichier.close();
return nb;
}
Comments
Post a Comment