Bonjour,
je débute en C++, j'essaie tant bien que mal de développer un agenda en mode console. J'ai créé une classe Agenda et j'ai implémenté une méthode write2File qui copie les informations d'une liste ( (list<Agenda>) dans un fichier. Mais voilà, dans le fichier les accents et autres caractères (la cédille) ne sont pas affichés correctement.
Code mAgenda.cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 int main (){ Agenda agenda; list <Agenda> listeAgenda; int lejour,lemois,lannee,lheure; string lactivite; cout<<"Entrez le jour :"<<endl; cin>>lejour; fflush(stdin); cout<<"Entrez le mois :"<<endl; cin>>lemois; fflush(stdin); cout<<"Entrez l'annee :"<<endl; cin>>lannee; fflush(stdin); cout<<"Entrez l'heure :"<<endl; cin>>lheure; fflush(stdin); cout<<"Activité :"<<endl; //getline(istream,string) utilisé pour le type string getline(cin,lactivite); fflush(stdin); cout<<"continuer l'encodage ? (o/n) "<<endl; cin>>encore; fflush(stdin); ... list<Agenda>::iterator ite=listeAgenda.begin(); // je parcoure ma liste, et insère les données aux endroits voulu for(ite=listeAgenda.begin();ite != listeAgenda.end();++ite){ ... listeAgenda.insert(ite,*(new Agenda(lejour,lemois,lannee,lheure,lactivite))); ... } ... }
Code Agenda.cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 ... void Agenda::write2File(list<Agenda> &lA) { list<Agenda>::iterator it=lA.begin(); ofstream sortieFichierAgenda( "agenda.txt", ios::out ); if ( !sortieFichierAgenda ) { // Opérateur ! surchargé. cerr << "Ouverture du fichier impossible" << endl; exit( 1 ); } for(it=lA.begin();it != lA.end();++it){ //sortieFichierAgenda << (*it).jour << ' ' << (*it).mois << ' ' << (*it).annee << ' ' << (*it).heure << ' ' << (*it).activite << '\n'; //cout<<(*it).activite => s'affiche correctement dans la console sortieFichierAgenda << (*it) <<endl; } sortieFichierAgenda.close(); } ...
Voilà ce que ça donne à la console :
Entrez le jour :
03
Entrez le mois :
10
Entrez l'annee :
2008
Entrez l'heure :
1830
ActivitÚ :
rdv avec Françoise à la côte
continuer l'encodage ? (o/n)
n
3/10/2008 1830 : rdv avec Françoise à la côte
1/1/2009 8 : projet C++
2/3/2009 9 : rÚveil matin
4/8/2009 12 : vacances
Appuyez sur une touche pour continuer...
Et le résultat obtenu dans le fichier :
3/10/2008 1830 : rdv avec Fran‡oise … la c“te
1/1/2009 8 : projet C++
2/3/2009 9 : réveil matin
4/8/2009 12 : vacances
Merci d'avance.
Partager