le "cin" est sympa mais il se met facilement en boule (en boucle?).
Suite à une question par message, voici une snipette pouvant servir d'exemple
Source / Exemple :
/*
il est délicat de lire avec cin . Exemple :
si l'on attend une saisie de chiffre et que l'utilisateur saisit une lettre,
le flux part en "bad" et boucle....
Voici une solution
#include <iostream>
using namespace std;
int main()
{
int i=0;
char buf[80];
do
{
cout << "taper un chiffre (0 pour finir)" << endl;
//mauvaise solution ...
//cin >> i; ... => ça va boucler ...
//if (cin.bad()) ... sans arriver ici !
//{cout << "pas un chiffre ! "<<endl;
//bonne solution
if (!(cin >> i))
{
cout << "pas un chiffre! "<<endl;
cin.clear();//remettre le flux dans l'état good
cin.getline(buf,80);// poubelliser le reste du buffer
}
else cout << "=> " << i << endl;
}
while (i!=0);
return 0;
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.