Switch Case_Encadrer les erreurs de l'utilisateur
Fermé
phube008
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
GrandCaribou Messages postés 28793 Date d'inscription Statut Modérateur Dernière intervention -
GrandCaribou Messages postés 28793 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je suis débutant en C++ (2 mois de programmation).
J'ai un programme qui doit utiliser seulement #include <iostream>.
J'essai de trouver un moyen d'encadrer les erreurs de l'utilisateur si ce dernier entre une valeur autre qu'un entier pour la robustesse de mon programme.
(copier/coller)
/*
TEST: entrez une lettre ou un nombre fractionnaire au-lieu d'un entier et vous trouverez une boucle infini. Comment faire pour empêcher les boucles infinis si l'utilisateur veut mettre une valeur invalide. EX: entrer (2.3), "m", ou une "double" dans un "int". J'ai pensé à faire une variable char, mais ça n'a pas été concluant.
Est-ce que c'est impossible à cause des limites de notre librairie?
*/
// Voici le code à améliorer
//-------------------------------------------------------------------------------
#include <iostream>
using namespace std;
int main()
{
int choix = 0, min =1 ,max=5;
do
{
// Demander et redemander après l'affichage du choix
cout << "Entrez un nombre ENTIER entre 1 et 5" << endl;
cin >> choix;
if (choix>=1 && choix<= 5) // Vérifier si choix est un entier? while (choix == (int)choix)?
{
switch (choix)
{
case 1 :
cout << "Votre choix est 1"<< endl;
break;
case 2 :
cout << "Votre choix est 2"<< endl;
break;
case 3 :
cout << "Votre choix est 3"<< endl;
break;
case 4 :
cout << "Votre choix est 4"<< endl;
break;
default :
cout << "Votre choix est 5"<< endl;
break;
}
cout << endl;
}
// Sortie du IF
else
{
cout << "Choix INVALIDE"<< endl;
}
}while (choix>=1 || choix <=5);
system("pause");
}
// Merci! J'attends vos commentaires.
Je suis débutant en C++ (2 mois de programmation).
J'ai un programme qui doit utiliser seulement #include <iostream>.
J'essai de trouver un moyen d'encadrer les erreurs de l'utilisateur si ce dernier entre une valeur autre qu'un entier pour la robustesse de mon programme.
(copier/coller)
/*
TEST: entrez une lettre ou un nombre fractionnaire au-lieu d'un entier et vous trouverez une boucle infini. Comment faire pour empêcher les boucles infinis si l'utilisateur veut mettre une valeur invalide. EX: entrer (2.3), "m", ou une "double" dans un "int". J'ai pensé à faire une variable char, mais ça n'a pas été concluant.
Est-ce que c'est impossible à cause des limites de notre librairie?
*/
// Voici le code à améliorer
//-------------------------------------------------------------------------------
#include <iostream>
using namespace std;
int main()
{
int choix = 0, min =1 ,max=5;
do
{
// Demander et redemander après l'affichage du choix
cout << "Entrez un nombre ENTIER entre 1 et 5" << endl;
cin >> choix;
if (choix>=1 && choix<= 5) // Vérifier si choix est un entier? while (choix == (int)choix)?
{
switch (choix)
{
case 1 :
cout << "Votre choix est 1"<< endl;
break;
case 2 :
cout << "Votre choix est 2"<< endl;
break;
case 3 :
cout << "Votre choix est 3"<< endl;
break;
case 4 :
cout << "Votre choix est 4"<< endl;
break;
default :
cout << "Votre choix est 5"<< endl;
break;
}
cout << endl;
}
// Sortie du IF
else
{
cout << "Choix INVALIDE"<< endl;
}
}while (choix>=1 || choix <=5);
system("pause");
}
// Merci! J'attends vos commentaires.
A voir également:
- Switch Case_Encadrer les erreurs de l'utilisateur
- Android switch - Accueil - Android
- Smart switch pc - Télécharger - Divers Bureautique
- Switch off - Télécharger - Divers Utilitaires
- Logiciel switch - Télécharger - Conversion & Extraction
- Switch qwerty azerty - Guide
1 réponse
Bonjour,
Veuillez s'il vous plait rester sur votre message initial afin de permettre la bonne compréhension de la discussion que vous avez déjà entamée. Sinon, on ne peut pas suivre la conversation et on ne comprend plus rien !
https://forums.commentcamarche.net/forum/affich-28983832-switch-case-mal-concu-avec-boucle-infini
Pour ce faire, utilisez le bouton "Répondre" et non "Posez votre question".
Merci à vous
Grand Caribou, modérateur CCM
Veuillez s'il vous plait rester sur votre message initial afin de permettre la bonne compréhension de la discussion que vous avez déjà entamée. Sinon, on ne peut pas suivre la conversation et on ne comprend plus rien !
https://forums.commentcamarche.net/forum/affich-28983832-switch-case-mal-concu-avec-boucle-infini
Pour ce faire, utilisez le bouton "Répondre" et non "Posez votre question".
Merci à vous
Grand Caribou, modérateur CCM