Bonjour,

Nouvelle sur le forum, je cherche un secour dans le possible (mais surement j'aurai ce secours, c'est bien l'océan ...) sinon le probleme est comme suit :
j'ai un programme en C++ , correct surement mais pour l'exécuter j'ai un probleme c'est qu'il se ferme avant d'afficher tout le résultat, autrement, ca donne peu de temps pour le visualiser en texte ... je vous file le programme que vous pouvez tester sur vos machines et comme ça le probleme sera partager entre les bonnes âmes scientifiques...n'est ce pas vrai

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
include <iostream>
#include <set>
#include <map>
#include <string>
 
typedef unsigned annee_t;
typedef unsigned mois_t;
typedef unsigned jour_t;
typedef std::string data_t;
 
// La clé
struct cle_t{
    annee_t annee;
    mois_t mois;
    jour_t jour;
};
 
// la relation d'ordre entre les différentes clés
struct trier_cle{
    inline bool operator()(const cle_t & k1,const cle_t & k2){
        return  k1.annee <  k2.annee
            || (k1.annee == k2.annee && k1.mois <  k2.mois)
            || (k1.annee == k2.annee && k1.mois == k2.mois && k1.jour < k2.jour);
    }
};
 
typedef std::map<cle_t,data_t,trier_cle> datas_t;
 
 
int main(){
    datas_t datas;
    unsigned nb_evenements;
 
    // Demander les evenements
    std::cout << "Nb evenements ? ";
    std::cin >> nb_evenements;
    for(unsigned int i=0;i<nb_evenements;++i){
        struct cle_t k;
        data_t d;
        std::cout << "Evenement [" << (i+1) << '/' << nb_evenements << ']' << std::endl;
        std::cout << "Annee ? ";
        std::cin >> k.annee;
        std::cout << "Mois ? ";
        std::cin >> k.mois;
        std::cout << "Jour ? ";
        std::cin >> k.jour;
        std::cout << "Evenement ? ";
        std::cin >> d;
        datas[k] = d;
    }
 
    // Les afficher de manière ordonnée
    datas_t::const_iterator dit(datas.begin()),dend(datas.end());
    for(;dit!=dend;++dit){
        const cle_t & k = dit->first;
        const data_t & d = dit->second;
        std::cout << k.jour << '/' << k.mois << '/' << k.annee << '\t' << d << std::endl;
    }
    return 0;
}
ce qui normalement devait donner comme résultat est :
(mando@polgara) (~) $ ./a.out
Nb evenements ? 3
Evenement [1/3]
Annee ? 2005
Mois ? 11
Jour ? 2
Evenement ? plop
Evenement [2/3]
Annee ? 1983
Mois ? 03
Jour ? 18
Evenement ? naissance
Evenement [3/3]
Annee ? 2007
Mois ? 05
Jour ? 08
Evenement ? maintenant
18/3/1983 naissance
2/11/2005 plop
8/5/2007 maintenant
Mais moi j'ai pas ce résultat en entier mais plutot juste une partie :
(mando@polgara) (~) $ ./a.out
Nb evenements ? 3
Evenement [1/3]
Annee ? 2005
Mois ? 11
Jour ? 2
Evenement ? plop
Evenement [2/3]
Annee ? 1983
Mois ? 03
Jour ? 18
Evenement ? naissance
Evenement [3/3]
Annee ? 2007
Mois ? 05
Jour ? 08
Evenement ? maintenant
Il affiche pas les événements ordonnés et ça se ferme aussitôt que je clic le dernier événement

Si vous voyez ce que je vois pas et qui bloque mon travail...
Merci d'avance