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

Résolu
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

  1. Contributeur
    Mets un second cin.get(); Ca devrait aller mieux :-).
    1
    1. 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
    2. Contributeur
      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
    3. Ah, merci bien. J'inverse le sens des chevrons avec cin, parfois...
      0
    4. Merci beaucoup pour vos réponse, Mon probleme est résolu :)
      0