Bug cin >> C++ [WXDevC++]

Résolu
adrienmarty Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   -  
adrienmarty Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je début en C++ sous WXDevC++ .
Mon probleme est que mon programe se termine quand je valide la valeur que je souhaite attribuer a ma variable en utilisant cin...
Voici mon programme :

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int age =0 ;
    cout << "Quel age avez-vous ? :" ;
    cin >>age;
    cout << "Ah ! Vous avez donc " << age << " ans !" << endl;
    
    
    
    cout << "Press the enter key to continue ...";
    cin.get();
    return EXIT_SUCCESS;
}


Pourtant je marque bien une pause grace a :

cin.get();
    return EXIT_SUCCESS;


Je ne comprend pas pourquoi cette ligne est le reste ne s'execute pas :

cout << "Ah ! Vous avez donc " << age << " ans !" << endl;


Merci d'avancenpour vos réponses très nombreuses, je l'espère...

1 réponse

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Mets un second cin.get(); Ca devrait aller mieux :-).
1
Idéophage Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   5
 
Explications : le caractère '\n' n'est pas retiré du flot par cin << age, donc il est récupéré par cin.get(). Ce serati plus propre de vider le tampon après la lecture de age, mais bon, c'est pas important.

(google is'nt my friend)
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Attention au sens des chevrons. C'est cin >> age; mais cout << age;
Sinon, ce serait plus propre de vider le buffer comme tu dis, mais aussi de contrôler la lecture de la variable.

Pour vider (à faire uniquement si le buffer clavier est non vide : !cin.fail()) :
cin.clear();
cin.ignore(numeric_limits<streamsize>::max());

Pour le contrôle, on pourra se contenter de vérifier : cin.eof() || cin.bad()
0
Idéophage Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   5
 
Ah, merci bien. J'inverse le sens des chevrons avec cin, parfois...
0
adrienmarty Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   3
 
Merci beaucoup pour vos réponse, Mon probleme est résolu :)
0