bnojour ami programmeur
j ai un projet a rendre mais me vopila confronter a un choix
c est a propos des operateurs >>
j ai fait deux codes
le contenu importe peu mais c la facon de coder ki me laissse perplexe
j aimerai ke vous me dites kel est la meilleure facon
ds la premiere, je fais simple
ds la seconde, je verifie les champs puis j entre les valeur, comme ca y aura pas de pb et la saisie sera verifie
merci de repondre ^^
1 istream& operator >> (istream& in, entreprise& e) { cout<<" - Entrer le nom: "; in>>e.nom; cout<<" - Entrer l'adresse: "; in>>e.adresse; cout<<" - Entrer le numero de telephone fixe: "; in>>e.num_tel_fixe; cout<<" - Entrer l'adresse du site: "; in>>e.www; cout<<" - Entrer l'activite: "; in>>e.activite; cout<<" - Entrer le numero du fax: "; in>>e.fax; return in; }
---------------------------- et celui la ki verifie les champs: ---------------------------- istream& operator >> (istream& ein,entreprise& e) { string st,nom,adr,ntf,www,act,fax; bool ok=true; ein >>st; int espace=0; if (st != "Nom:") ok=false; else { ein >>st; while (st != " Adresse:" && espace <10) { nom=nom+st; ein >>st; st=" "+st; espace++; } if (! (espace < 10)) ok=false; else { espace=0; ein >>st; while ( st != " Tel_fixe:" && espace<10) { adr=adr+st; ein >>st; st=" "+st; espace++; } if (!(espace<10)) ok=false; else { espace=0; ein >>st; while (st != " Fax:" && espace<10) { ntf=ntf+st; ein >>st; st=" "+st; espace++; } if (!(espace <10)) ok=false; else { espace=0; ein >>st; while (st != " Activitee:" && espace<10) { fax=fax+st; ein >>st; st=" "+st; espace++; } if (!(espace<10)) ok=false; else { espace=0; ein >>st; while (st != " Site_web:" && espace<10) { act=act+st; ein >>st; st=" "+st; espace++; } if (!(espace<10)) ok=false; else ein >>www; } } } } } if (ok) { e.nom=nom; e.adresse=adr; e.num_tel_fixe=ntf; e.www=www; e.activite=act; e.fax=fax; } else ein.clear(ios::badbit |ein.rdstate()); return ein;
|