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   -
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.

4 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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.
0
overpowed Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   2
 
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.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Le break ne sert pas à revenir au début, bien au contraire.
Pour boucler il te faut rajouter... une boucle !

while(1)
{
   cout << ... << endl; // menu
   switch(...) // opérations
   {
   }
}
0
overpowed Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   2
 
merci, ca fonctionne parfaitement.
0