salut
comment protéger ce programme contre des erreurs de saisie, lorsque l'utilisateur frappe 'x' dans un float; par exemple en turbo pascal il y a le IOresult

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
int main()
{
    float a;
        cout << "Un nombre: ";
        cin>>a;
        cout <<endl<< "tu as saisi : " << a <<endl;
    return 0;
}
ceci par exemple boucle de manière infinie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
#include <iostream>
using namespace std;
 
int main()
{
    float a=5;
       while(a!=-1){
        cout << "Un nombre ou -1 pour quitter: ";
        cin>>a;
        cout <<endl<< "tu as saisi : " << a <<endl;
        }
    return 0;
}
Voilà une légère correction, mais je préfère une correction du premier code pour éviter la frappe d'un caractère innacceptable; je prend le cas d'une simple addition où l'utilisateur frappe un caractère et non un nombre

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
 
int main()
{
    float a=5;
       while(cin>>a && a!=-1){
        cout << "Un nombre ou -1 pour quitter: ";
        cout <<endl<< "tu as saisi : " << a <<endl;
        }
    return 0;
}