bonjour,
Je travail avec code::Blocks 17.12, j'aimerais bien comprendre les pointeurs et les classes d'objets.
J'ai donc décidé de faire une liste chainée de pointeurs et je lis et enregistre dans un fichier des mots aux format texte, (chaine.txt).
j'ai construis un programme de deux fichiers : un header > ptr_Hmot.h et un main.cpp. j'ai pour sortie une VT ou une fenètre commande sous windows.
voici mon petit programme :
1/ header >> ptr_Hmot.h
2/ le main.cpp mais pas totalement implémenté :
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 #ifndef PTR_HMOT_H_INCLUDED #define PTR_HMOT_H_INCLUDED #include <iostream> #include <string> class PTR_Hmot { public: PTR_Hmot(); void ajouter_ptr (std::string nouveau_mot); void inserer_ptr(std::string nouveau_mot); void maj_ptr(std::string nouveau_mot); void supprimer_ptr(): void afficher_ptr(std::string af_mots); // C::B s'arrête ici, je ne vois pas pourquoi void charger_fichier(); void ecrire_fichier(); ~PTR_Hmot(); private: double debut *m_debut; std::string mot *m_mot; double *m_fin; };
dans un premier temps je voudrais lire mon fichier chaine.txt d'une dixaines de mots pour les charger en mémoire grâce aux pointeurs.
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 #include <iostream> #include <fstream> #include <string> #include "ptr_Hmot.h" using namespace std; int main() { string mot; string mots; char reponse='Z'; PTR_Hmot::PTR_Hmot(m_debut(0),m_mot(""),m_fin(0)); do { cout << "A-charger fichier; B-Ajouter ptr; C-maj ptr; D-supprimer ptr; E-inserer ptr; F-lire ptr; G-écrire fichier; Q-detruire/quit"; cin >> reponse; switch(reponse) { case 'A': PTR_Hmot::charger_fichier(af_mot); { int i=0; ifstream fichier("/home/phipo/C++/ptr_002/chaine.txt"); if(fichier) { string ligne; //Une variable pour stocker les lignes lues while(getline(fichier, ligne)) { cout << ligne << endl; m_mot-> new mot(ligne); m_debut->i+1; m_fin->i+2; i=i+1; } } else { cout << "ERREUR: Impossible d'ouvrir le fichier en lecture." << endl; } } break; case 'B': PTR_Hmot::ajouter_ptr(mot); { } break; case 'C': PTR_Hmot::maj_ptr(mot); { } break; case 'D': PTR_Hmot::supprimer_ptr(); { } break; case 'E': PTR_Hmot::inserer_ptr(mot); { } break; case 'F': PTR_Hmot::afficher_ptr(mots); { } break; case 'G': PTR_Hmot::ecrire_fichier(chaine); { } break; } cout << "A-charger fichier; B-Ajouter ptr; C-maj ptr; D-supprimer ptr; E-inserer ptr; F-lire ptr; G-écrire fichier; Q-detruire/quit"; cin >> reponse; }while (reponse != 'Q'); return 0; }
Lors de la compilation C::B s'arrête sur une ligne de mon header.
comment faut'il si prendre ?
Salutations
Philippe
Partager