C++ : problème avec l'option switch
Résolu
overpowed
Messages postés
116
Date d'inscription
Statut
Membre
Dernière intervention
-
overpowed Messages postés 116 Date d'inscription Statut Membre Dernière intervention -
overpowed Messages postés 116 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je débute en cours de C++ et j'ai des souci avec l'option switch qui ne renvoie aucune donnée après avoir mis le numéro.
Voici le code:
-------------------------------------------------------------------------------------------------------------------
#include <iostream>
#include <string>
#include <math.h>
using namespace std;// en tête obligatoire
int main()
{
int nb;
int choix;
int far;
cout<<"MENU"<<endl<<"Saisir votre choix :"<<endl<<"1) Convertion \370C \315\315> \370F"<<endl<<"2) Convertion \370F \315\315> \370C"<<endl<<"3) Terminer"<<endl;
cout<<"Votre choix : 1,2,3"<<endl;
cin>>choix;
switch (choix){ // Voici le switch en question et les numéro de choix.
case '1':
cout<<"Veuillez saisir la temp\202rature que vous voulez convertir."<<endl<<"celle-ci exprim\202e sera convertie en Farenheit :";
double far;
cin>>far;
cout<<"La temp\202rature est de :"<<(9.0*(far)/5)+32<<" \370F"<<endl;
break;
case '2':
cout<<"Veuillez saisir la temp\202rature que vous voulez converture."<<endl<<"celle-ci exprim\202e sera convertie en Celsius :";
cin>>far;
cout<<"La temp\202rature est de :"<<(5.0/9.0)*(far-32.)<<" \370C"<<endl;
break;
case '3' :
return 0;
default :
cout<<"error"<<endl;
break;
}
nb=cin.get();
nb=cin.get();
}
-------------------------------------------------------------------------------------------------------------------
Pourquoi la sélection ne se réalise pas?
Merci d'avance de votre réponse.
je débute en cours de C++ et j'ai des souci avec l'option switch qui ne renvoie aucune donnée après avoir mis le numéro.
Voici le code:
-------------------------------------------------------------------------------------------------------------------
#include <iostream>
#include <string>
#include <math.h>
using namespace std;// en tête obligatoire
int main()
{
int nb;
int choix;
int far;
cout<<"MENU"<<endl<<"Saisir votre choix :"<<endl<<"1) Convertion \370C \315\315> \370F"<<endl<<"2) Convertion \370F \315\315> \370C"<<endl<<"3) Terminer"<<endl;
cout<<"Votre choix : 1,2,3"<<endl;
cin>>choix;
switch (choix){ // Voici le switch en question et les numéro de choix.
case '1':
cout<<"Veuillez saisir la temp\202rature que vous voulez convertir."<<endl<<"celle-ci exprim\202e sera convertie en Farenheit :";
double far;
cin>>far;
cout<<"La temp\202rature est de :"<<(9.0*(far)/5)+32<<" \370F"<<endl;
break;
case '2':
cout<<"Veuillez saisir la temp\202rature que vous voulez converture."<<endl<<"celle-ci exprim\202e sera convertie en Celsius :";
cin>>far;
cout<<"La temp\202rature est de :"<<(5.0/9.0)*(far-32.)<<" \370C"<<endl;
break;
case '3' :
return 0;
default :
cout<<"error"<<endl;
break;
}
nb=cin.get();
nb=cin.get();
}
-------------------------------------------------------------------------------------------------------------------
Pourquoi la sélection ne se réalise pas?
Merci d'avance de votre réponse.
4 réponses
Tu as déclaré 2 fois la variable far, ce qui n'est pas correct, de plus il faut la déclarer en dehors du switch si tu veux l'utiliser dans plusieurs case.
Enlèves donc ton double far;
Sinon pour ton problème de switch, tu as un int choix dans le switch, mais tu utilises des cases avec des char '1', '2', '3'... qui valent respectivement
Enlèves les apostrophes '' autour de tes valeurs.
Remarque (juste pour information) :
Tu peux aller à la ligne au milieu d'un cout. Je te conseille donc d'y aller au moins après un endl plutôt que de faire une ligne à rallonge.
using namespace std; n'est pas obligatoire, c'est très pratique oui, mais tu peux t'en passer en utilisant std:: devant tous les éléments de la la librairie std, comme std::cin, std::cout et std::endl par exemple.
Enlèves donc ton double far;
Sinon pour ton problème de switch, tu as un int choix dans le switch, mais tu utilises des cases avec des char '1', '2', '3'... qui valent respectivement
Enlèves les apostrophes '' autour de tes valeurs.
Remarque (juste pour information) :
Tu peux aller à la ligne au milieu d'un cout. Je te conseille donc d'y aller au moins après un endl plutôt que de faire une ligne à rallonge.
using namespace std; n'est pas obligatoire, c'est très pratique oui, mais tu peux t'en passer en utilisant std:: devant tous les éléments de la la librairie std, comme std::cin, std::cout et std::endl par exemple.
Merci pour ta réponse. Maintenant, ça sélectionne les items du menu mais le retour au menu via la fonction "break" ne se fait pas or c'est ce qui est demandé dans la consigne pour les cours.
Pourquoi?
Merci d'avance pour cette dernière question.
Pourquoi?
Merci d'avance pour cette dernière question.