IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Caractères accentués dans les strings


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 25
    Points : 17
    Points
    17
    Par défaut Caractères accentués dans les strings
    Bonjour,

    Je dois faire une application de gestion d'horaire dans le cadre des mes études.
    Petit soucis, lorsque j'importe un fichier .csv, les caractères accentués sur les professeurs ne s'encodent pas correctement.

    Je vous mets ci-dessous mes différents fichiers.

    Classe professeur: (.cpp)
    Code : 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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    #include "Professeur.h"
     
    Professeur::Professeur()
    {
    	Nom = NULL;
    	Prenom = NULL;
    	strcpy(Identifiant, " ");
    	setType('h'); 
    }
     
    Professeur::Professeur(const char *N, const char *P)
    {
    	Nom = NULL;
    	Prenom = NULL;
    	setNom(N);
    	setPrenom(P);
    	strcpy(Identifiant, getIdentifiant());
    	setType('h');
    }
     
    Professeur::~Professeur()
    {
    	//cout << "destructeur professeur"<<endl;
    	if(Nom)
    		delete Nom;
    	if(Prenom)
    		delete Prenom;
    	Nom = NULL;
    	Prenom = NULL;
    }
     
    Professeur::Professeur(const Professeur &copie)
    {
    	Nom = NULL;
    	Prenom = NULL;
    	setNom(copie.getNom());
    	setPrenom(copie.getPrenom());
    }
     
    void Professeur::setNom(const char *N)
    {
    	if(Nom)
    		delete Nom;
    	Prenom = NULL;
    	if(N)
    	{
    		Nom = new char[strlen(N)+1];
    		strcpy(Nom, N);
    	}
    }
     
    void Professeur::setPrenom(const char *P)
    {
    	if(Prenom)
    		delete Prenom;
    	Prenom = NULL;
    	if(P)
    	{
    		Prenom = new char[strlen(P)+1];
    		strcpy(Prenom, P);
    	}
    }
     
    char *Professeur::getNom()const
    {
    	return Nom;
    }
     
    char *Professeur::getPrenom()const
    {
    	return Prenom;
    }
     
    const char *Professeur::getIdentifiant()
    {
    	sprintf(Identifiant, "%s %s", Nom, Prenom);
    	return Identifiant;
    }
     
     
    void Professeur::Affiche()
    {
    	if(Nom)
    		cout << Nom;
    	else
    		cout << "NULL";
    	cout << ", ";
    	if(Prenom)
    		cout << Prenom;
    	else
    		cout << "NULL";
    	cout << ", ";
    	cout << getIdentifiant() << endl;
    }
     
    ostream& operator<< (ostream& flux, const Professeur &P)
    {
    	if(P.getNom() && P.getPrenom())
    	{
    		flux << "Nom: " << P.getNom() << endl;
    		flux << "Prenom: " << P.getPrenom() << endl;
    	}
    	return flux;
     
    }
    istream& operator>> (istream& flux, Professeur &P)
    {
    	char nom[30], prenom[30];
     
    	do
    	{
    		cout << "Nom : ";
    		flux >> nom;
    	}while(strlen(nom) >= 30);
     
    	do
    	{
    		cout << "Prenom : ";
    		flux >> prenom;
    	}while(strlen(prenom) >= 30);
     
    	P.setNom(nom);
    	P.setPrenom(prenom);
    	return flux;
    }
     
    Professeur& Professeur::operator=(const Professeur& p)
    {
    	setNom(p.getNom());
    	setPrenom(p.getPrenom());
    	getIdentifiant();
    	return *this;
    }
     
    bool Professeur::operator==(const Professeur &e)
    {
    	if(strcmp(e.getNom(), getNom()) == 0)
    		return true;
     
    	return false;
    }
     
    bool Professeur::operator>(const Professeur &e)
    {
    	if(strcmp(getNom(), e.getNom()) > 0)
    		return true;
    	if(strcmp(getNom(), e.getNom()) == 0 && strcmp(getPrenom(), e.getPrenom()) > 0)
    		return true;
     
    	return false;
    }
     
    bool Professeur::operator<(const Professeur &e)
    {
    	if(strcmp(getNom(), e.getNom()) < 0)
    		return true;
    	if(strcmp(getNom(), e.getNom()) == 0 && strcmp(getPrenom(), e.getPrenom()) < 0)
    		return true;
     
    	return false;
    }
     
    void Professeur::Load(ifstream &fichier)
    {
    	char *nom = NULL, *prenom = NULL;
    	string NomPrenom;
     
    	getline(fichier, NomPrenom, ';');
    	nom = new char[NomPrenom.size()+1];
    	strcpy(nom, NomPrenom.c_str());
    	//NomPrenom.copy(nom, NomPrenom.size(), 0);
     
    	NomPrenom.erase(0, NomPrenom.size());
     
    	getline(fichier, NomPrenom);
    	prenom = new char [NomPrenom.size()+1];
    	strcpy(prenom, NomPrenom.c_str());
    	//NomPrenom.copy(prenom, NomPrenom.size(), 0);
     
    	setNom(nom);
    	setPrenom(prenom);
    }
    Le header de la classe :
    Code : 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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    #ifndef PROFESSEUR_H
    #define PROFESSEUR_H
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <string>
    #include <iostream>
    #include <fstream>
    using namespace std;
     
    #include "ListeTriee.h"
    #include "Planifiable.h"
     
     
    class Professeur: public Planifiable
    {
    	friend ostream& operator<< (ostream& , const Professeur &);
    	friend istream& operator>> (istream& , Professeur &);
     
    	private:
    		char *Nom;
    		char *Prenom;
    		char Identifiant[100];
     
    	public:
    		Professeur();
    		Professeur(const char *, const char *);
    		~Professeur();
    		Professeur(const Professeur &);
     
    		void setNom(const char *);
    		void setPrenom(const char *);
     
    		char *getNom()const;
    		char *getPrenom()const;
    		const char *getIdentifiant();
     
    		void Affiche();
     
    		Professeur& operator=(const Professeur&);
    		bool operator==(const Professeur &);
    		bool operator>(const Professeur &);
    		bool operator<(const Professeur &);
     
    		void Load(ifstream &fichier);
    };
    #endif
    Le menu (.cpp):
    Code : 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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    #include "Menu.h"
     
    int Menu()
    {
    	system("clear");
    	cout << "*****************************************************************************" << endl;
    	cout << "*********************** Gestion d'un horaire de cours ***********************" << endl;
    	cout << "*****************************************************************************" << endl;
    	cout << "*	                                                                    *" << endl;
    	cout << "*	0. Quitter                                                          *" << endl;
    	cout << "*	                                                                    *" << endl;
    	cout << "*************** Fichier en cours : 1erQuadrimestre_2015.hor  ****************" << endl;
    	cout << "*	                                                                    *" << endl;
    	cout << "*	1. Nouvel horaire                                                   *" << endl;
    	cout << "*	2. Ouvrir un horaire                                                *" << endl;
    	cout << "*	3. Enregistrer l'horaire                                            *" << endl;
    	cout << "*	4. Fermer l'horaire                                                 *" << endl;
    	cout << "*	                                                                    *" << endl;
    	cout << "************************** Gestion des planifiables *************************" << endl;
    	cout << "*	                                                                    *" << endl;
    	cout << "*	5. Ajouter un Professeur/Groupe/Local                               *" << endl;
    	cout << "*	6. Importer des Professeurs/Groupes/Locaux au format csv            *" << endl;
    	cout << "*	7. Afficher la liste des Professeurs/Groupes/Locaux                 *" << endl;
    	cout << "*	8. Supprimer un Professeur/Groupe/Local                             *" << endl;
    	cout << "*	                                                                    *" << endl;
    	cout << "***************************** Gestion de l’horaire **************************" << endl;
    	cout << "*	                                                                    *" << endl;
    	cout << "*	9. Planifier un Cours                                               *" << endl;
    	cout << "*	10. Déplanifier un Cours                                            *" << endl;
    	cout << "*	11. Déplanifier tous les Cours d’un Professeur/Groupe/Local         *" << endl;
    	cout << "*	12. Afficher tous les Cours d’un Professeur/Groupe/Local            *" << endl;
    	cout << "*	13. Afficher tous les Cours d’un jour particulier                   *" << endl;
    	cout << "*	                                                                    *" << endl;
    	cout << "**************************** Publier l’horaire ******************************" << endl;
    	cout << "*	                                                                    *" << endl;
    	cout << "*	14. Exporter l’horaire d’un Professeur/Groupe/local au format txt   *" << endl;
    	cout << "*	                                                                    *" << endl;
    	cout << "*****************************************************************************" << endl;
     
    	int ch;
    	cout << "  Choix : ";
    	cin >> ch;
    	cin.ignore();
    	return ch;
    }
     
    void Fermeture()
    {
    	char quit;
     
    	cout << "Voulez-vous vraiment quitter ? (y/n) : ";
    	cin >> quit;
     
    	if(quit == 'y')
    	{
    		system("clear");
    		cout << "Fermeture de l'application..." <<endl;
    		exit(1);
    	}
    }
     
    void Essai1()
    {
    	cout << "Essai 1" << endl;
    }
     
    void Essai5(ListeTriee<Professeur> *p, ListeTriee<Groupe> *g, ListeTriee<Local> *l)
    {
    	int choix;
    	system("clear");
     
    	cout << "*****************************************************************************" << endl;
    	cout << "*	1. Ajouter un professeur                                            *" << endl;
    	cout << "*	2. Ajouter un groupe                                                *" << endl;
    	cout << "*	3. Ajouter un local                                                 *" << endl;	
    	cout << "*****************************************************************************" << endl;
    	cout << "Choix: ";
    	cin >> choix;
     
    	switch(choix)
    	{
    		case 1: AjoutProf(p); cout << "Sortie de Essai5" << endl; break;
    		case 2: AjoutGroupe(g); break;
    		case 3: AjoutLocal(l); break;
    	}
     
    	cout << "Sortie de Essai5" << endl;
    }
     
    void Essai6(ListeTriee<Professeur> *p, ListeTriee<Groupe> *g, ListeTriee<Local> *l)
    {
    	int choix;
    	system("clear");
     
    	cout << "*****************************************************************************" << endl;
    	cout << "*	1. Importer des professeurs                                            *" << endl;
    	cout << "*	2. Importer des groupes                                                *" << endl;
    	cout << "*	3. Importer des locaux                                                 *" << endl;	
    	cout << "*****************************************************************************" << endl;
    	cout << "Choix: ";
    	cin >> choix;
     
    	switch(choix)
    	{
    		case 1: ImportProf(p); break;
    		case 2: ImportGroupe(g); break;
    		case 3: ImportLocal(l); break;
    	}
    }
     
    void Essai7(ListeTriee<Professeur> *p, ListeTriee<Groupe> *g, ListeTriee<Local> *l)
    {
    	int choix;
    	system("clear");
     
    	cout << "*****************************************************************************" << endl;
    	cout << "*	1. Afficher les professeurs                                            *" << endl;
    	cout << "*	2. Afficher les groupes                                                *" << endl;
    	cout << "*	3. Afficher les locaux                                                 *" << endl;	
    	cout << "*****************************************************************************" << endl;
    	cout << "Choix: ";
    	cin >> choix;
     
    	switch(choix)
    	{
    		case 1: AffichProf(p); break;
    		case 2: AffichGroupe(g); break;
    		case 3: AffichLocal(l); break;
    	}
    }
     
    void Essai8(ListeTriee<Professeur> *p, ListeTriee<Groupe> *g, ListeTriee<Local> *l)
    {
    	int choix;
    	system("clear");
     
    	cout << "*****************************************************************************" << endl;
    	cout << "*	1. Supprime un professeur                                             *" << endl;
    	cout << "*	2. Supprime un groupe                                                 *" << endl;
    	cout << "*	3. Supprime un local                                                  *" << endl;	
    	cout << "*****************************************************************************" << endl;
    	cout << "Choix: ";
    	cin >> choix;
     
    	switch(choix)
    	{
    		case 1: SupProf(p); break;
    		case 2: SupGroupe(g); break;
    		case 3: SupLocal(l); break;
    	}
    }
    void AjoutProf(ListeTriee<Professeur> *p)
    {
    	Professeur prof;
    	cin >> prof;
     
    	p->insere(prof);
    }
     
    void AjoutGroupe(ListeTriee<Groupe> *g)
    {
    	Groupe grp;
    	cin >> grp;
     
    	g->insere(grp);
    }
     
    void AjoutLocal(ListeTriee<Local> *l)
    {
    	Local loc;
    	cin >> loc;
     
    	l->insere(loc);
    }
     
    void AffichProf(ListeTriee<Professeur> *p)
    {
    	int pause;
    	p->Affiche();
    	cout << "Appuyez sur une touche pour revenir en arrière..." << endl;
    	cin >> pause;
    }
     
    void AffichGroupe(ListeTriee<Groupe> *g)
    {
    	int pause;
    	g->Affiche();
    	cout << "Appuyez sur une touche pour revenir en arrière..." << endl;
    	cin >> pause;
    }
     
    void AffichLocal(ListeTriee<Local> *l)
    {
    	int pause;
    	l->Affiche();
    	cout << "Appuyez sur une touche pour revenir en arrière..." << endl;
    	cin >> pause;
    }
     
    void SupProf(ListeTriee<Professeur> *p)
    {
    	int pause;
    	bool trouve = false;
    	Professeur prof;
     
    	cout << "Entrez le professeur à supprimer: " << endl;
    	cin >> prof;
     
    	Iterateur<Professeur> It(*p);
    	It.reset();
     
    	while(!trouve && !It.end())
    	{
    		if(prof == *(&It))
    		{
    			trouve = true;
    			It.remove();
    		}
    		It++;
    	}
     
    	if(trouve)
    		cout << "Professeur supprimé" << endl;
    	else
    		cout << "Pas de correspondance" << endl;
     
    	cout << "Appuyez sur une touche pour revenir en arrière..." << endl;
    	cin >> pause;
    }
     
    void SupGroupe(ListeTriee<Groupe> *g)
    {
    	int pause;
    	bool trouve = false;
    	Groupe grp;
     
    	cout << "Entrez le Groupe à supprimer: " << endl;
    	cin >> grp;
     
    	Iterateur<Groupe> It(*g);
    	It.reset();
     
    	while(!trouve && !It.end())
    	{
    		if(grp == *(&It))
    		{
    			trouve = true;
    			It.remove();
    		}
    		It++;
    	}
     
    	if(trouve)
    		cout << "Groupe supprimé" << endl;
    	else
    		cout << "Pas de correspondance" << endl;
     
    	cout << "Appuyez sur une touche pour revenir en arrière..." << endl;
    	cin >> pause;
    }
     
    void SupLocal(ListeTriee<Local> *l)
    {
    	int pause;
    	bool trouve = false;
    	Local loc;
     
    	cout << "Entrez le Local à supprimer: " << endl;
    	cin >> loc;
     
    	Iterateur<Local> It(*l);
    	It.reset();
     
    	while(!trouve && !It.end())
    	{
    		if(loc == *(&It))
    		{
    			trouve = true;
    			It.remove();
    		}
    		It++;
    	}
     
    	if(trouve)
    		cout << "Local supprimé" << endl;
    	else
    		cout << "Pas de correspondance" << endl;
     
    	cout << "Appuyez sur une touche pour revenir en arrière..." << endl;
    	cin >> pause;
    }
     
    void ImportProf(ListeTriee<Professeur> *p)
    {
    	int pause;
    	Professeur prof;
     
    	ifstream FileProf("Professeurs.csv", ios::in);
     
    	if(FileProf)
    	{
    		while(!FileProf.eof())
    		{
    			prof.Load(FileProf);
    			p->insere(prof);
    		}
    		FileProf.close();
    	}
    	else
    		cerr << "Erreur lors de l'ouverture" << endl;
     
    	cout << "Fichier, Professeurs.csv chargé ! " << endl;
    	cout << "Appuyez sur une touche pour revenir en arrière..." << endl;
    	cin >> pause;
    }
     
    void ImportGroupe(ListeTriee<Groupe> *g)
    {
    	int pause;
    	Groupe grp;
     
    	ifstream FileGrp("Groupes.csv", ios::in);
     
    	if(FileGrp)
    	{
    		while(!FileGrp.eof())
    		{
    			grp.Load(FileGrp);
    			g->insere(grp);
    		}
    		FileGrp.close();
    	}
    	else
    		cerr << "Erreur lors de l'ouverture" << endl;
     
    	cout << "Fichier, Groupes.csv chargé ! " << endl;
    	cout << "Appuyez sur une touche pour revenir en arrière..." << endl;
    	cin >> pause;
    }
    void ImportLocal(ListeTriee<Local> *l)
    {
    	int pause;
    	Local loc;
     
    	ifstream FileLoc("Locaux.csv", ios::in);
     
    	if(FileLoc)
    	{
    		while(!FileLoc.eof())
    		{
    			loc.Load(FileLoc);
    			l->insere(loc);
    		}
    		FileLoc.close();
    	}
    	else
    		cerr << "Erreur lors de l'ouverture" << endl;
     
    	cout << "Fichier, Locaux.csv chargé ! " << endl;
    	cout << "Appuyez sur une touche pour revenir en arrière..." << endl;
    	cin >> pause;
    }
    Le header du menu:
    Code : 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
    37
    38
    #include "ListeTriee.h"
    #include "Professeur.h"
    #include "Groupe.h"
    #include "Local.h"
    #include "Iterateur.h"
     
    int  Menu();
    void Fermeture();
    void Essai1();
    void Essai2();
    void Essai3();
    void Essai4();
    void Essai5(ListeTriee<Professeur> * , ListeTriee<Groupe> *, ListeTriee<Local> *);
    void Essai6(ListeTriee<Professeur> * , ListeTriee<Groupe> *, ListeTriee<Local> *);
    void Essai7(ListeTriee<Professeur> * , ListeTriee<Groupe> *, ListeTriee<Local> *);
    void Essai8(ListeTriee<Professeur> * , ListeTriee<Groupe> *, ListeTriee<Local> *);
    void Essai9();
    void Essai10();
    void Essai11();
    void Essai12();
    void Essai13();
    void Essai14();
     
    void AjoutProf(ListeTriee<Professeur> *);
    void AjoutGroupe(ListeTriee<Groupe> *);
    void AjoutLocal(ListeTriee<Local> *);
     
    void AffichProf(ListeTriee<Professeur> *);
    void AffichGroupe(ListeTriee<Groupe> *);
    void AffichLocal(ListeTriee<Local> *);
     
    void SupProf(ListeTriee<Professeur> *);
    void SupGroupe(ListeTriee<Groupe> *);
    void SupLocal(ListeTriee<Local> *);
     
    void ImportProf(ListeTriee<Professeur> *);
    void ImportGroupe(ListeTriee<Groupe> *);
    void ImportLocal(ListeTriee<Local> *);
    Le main:
    Code : 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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #include <time.h>
    #include <fstream>
    #include <iostream>
    using namespace std;
     
    #include "Menu.h"
     
    int main()
    {
    	int choix;
    	bool fini = false;
    	ListeTriee<Professeur> p;
    	ListeTriee<Groupe> g;
    	ListeTriee<Local> l;
     
    	system("clear");
     
    	while(1)
    	{
     
    	choix = Menu();
    		switch(choix)
    		{
    			case 0 : Fermeture(); break;
    			//case 1 : Essai1(); break;
    			//case 2 : Essai2(); break;
    			//case 3 : Essai3(); break;
    			//case 4 : Essai4(); break;
    			case 5 : Essai5(&p, &g, &l); break;
    			case 6 : Essai6(&p, &g, &l); break;
    			case 7 : Essai7(&p, &g, &l); break;
    			case 8 : Essai8(&p, &g, &l); break;
    			//case 9 : Essai1(); break;
    			//case 10 : Essai2(); break;
    			//case 11 : Essai3(); break;
    			//case 12 : Essai4(); break;
    			//case 13 : Essai5(); break;
    			//case 14 : Essai6(); break;
    		}
    	}
     
    	return 0;
    }
    Et un extrait du fichier .csv:
    Code : 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
    ANCIAUX;Daniel
    AUDRIT;Ingrid
    BAECKEN;Marianne
    BARSICS;Joseph
    BEJJAJI;Abdel-Ilah
    BORREMANS;Olivier
    BOUDRON;Thomas
    BOUNAFAA;Mariama
    BROSE;Christophe
    CAPRASSE;François
    CEULEMANS;Stephanie
    CHARLET;Christophe
    CLAISSE;Nicolas
    COLLETTE;Eric
    COSTA;Corinne
    CRASSON;Alexandre
    DE FOOZ;Pierre
    DELAYEN;Eric
    DELNATTE;Pierre-Antoine
    DESSART;Damien
    DUPONT;Myriam
    ELSEN;Rachel
    ETIENNE;Veronique
    FRERE;Martine
    J'espère que quelqu'un pourra m'aider, le problème se situe pour moi dans la classe Professeur (le .cpp).
    Je vous mets quand même le reste de mes fichiers pour être sur de la bonne compréhension du code. Je ne mets juste pas ma classe "ListeTriee" car j'ai déjà vérifié et le problème ne se situe pas là.

    D'avance merci !

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    Une image vaut peut être mieux qu'un long texte.
    Voici une illustration de mon problème.

    Nom : Capture.png
Affichages : 180
Taille : 125,0 Ko

    Et autre soucis comme vous pouvez le voir, le dernier professeur est ajouté 2 fois.

    Bonne soirée.

  3. #3
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 739
    Points : 3 627
    Points
    3 627
    Par défaut
    Tu peux modifier l'encodage de la console dans les paramètre de celle-ci, le faire en C++ ou modifier l'encodage du fichier avec iconv iconv -f ISO-8859-15 -t UTF-8 lefichier > nouveaufichier par exemple.

    Pourquoi utiliser des char* à la place de std::string ? Pourquoi system ? pourquoi des pointeurs à la place de références ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    Bonjour jo_link_noir,

    Pour le codage de la console il est déjà en UTF-8, pour les char *, c'est demandé dans l'énoncé du prof, je ne peux pas utiliser des string dans les passages de fonction pour mes assesseurs.
    Quant au pointeurs, desquels parles-tu ? Si c'est de ceux des assesseurs, c'est pareil, les prototypes nous sont imposés.

    bàt.

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Alors cela peut-être très simple: ton fichier .csv est en latin-1 ou latin-9 [mbcs]
    Il faut donc convertir tous les caractères en UTF-8


    D'ailleurs un fichier .csv ne doit être qu'en ASCII.

  6. #6
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Alors tu diras à ton professeur qu'il est prié de réviser sa manière d'enseigner le C++.

    Les références sont à privilégier aux pointeurs, string à un pointeur de char.
    De même, les constructeurs devraient utiliser la liste d'initialisations plutot que des affectations dans le corps de la fonction.

    Par ailleurs, delete peut être appelé avec NULL sans aucun effet.
    C'est à dire, if (pointeur) delete pointeur; est strictement équivalent à delete pointeur;.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

Discussions similaires

  1. Réponses: 7
    Dernier message: 03/01/2012, 17h47
  2. Caractères accentués dans un String
    Par ktto15 dans le forum Langage
    Réponses: 2
    Dernier message: 20/11/2009, 18h27
  3. les caractères accentués dans les TextBox
    Par zooffy dans le forum ASP.NET
    Réponses: 5
    Dernier message: 01/08/2008, 16h53
  4. Réponses: 8
    Dernier message: 23/04/2008, 15h34
  5. Réponses: 6
    Dernier message: 10/09/2007, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo