J'utilise actuellement des instructions switch avec C++, j'ai travaillé sur quelques exemples et j'ai utilisé un exemple indépendant pour terminer. L'exemple que j'ai choisi était un convertisseur de devises d'eur à gbp. Dans tous les cas, mon code est revenu à la valeur par défaut comme si la mauvaise unité avait été entrée. Ceci est arrivé jusqu'à ce que je change mon entrée du symbole '€' ou '£' en 'E' ou 'P'. J'aimerais savoir où je me suis trompé. un exemple de mon code est ci-dessous.Instruction et symboles du commutateur C++
// Currency: Convert GBP to EUR or Vice Versa
int main(){
double gbp_to_eur = 1.09;
double eur_to_gbp = 0.92;
char unit = '£';
double amount_to_convert = 0;
int AnyKey = 0;
cout << "Please enter the the unit you'd like to convert \n";
cin >> unit;
cout << "\n \n Now please enter the amount you'd like to convert. \n";
cin >> amount_to_convert;
switch (unit) {
case 'P':
cout << "Your " << unit << amount_to_convert << " is worth €" << amount_to_convert * gbp_to_eur << '.\n';
break;
case 'E':
cout << "Your " << unit << amount_to_convert << " is worth €" << amount_to_convert * eur_to_gbp << '.\n';
break;
default: cout << "The compiler isn't programmed for this unit of currency. \n";
break;
}
cin >> AnyKey;
}
€ et £ sont des caractères multi-octets probables dans votre région, ce qui est probablement UTF-8. En tant que tel, vous ne pouvez pas utiliser un seul 'char' pour les représenter. –
Vous devriez ouvrir une montre dans votre débogueur et voir à quoi ressemble réellement l'unité dans votre mémoire. Vous pourriez être surpris. –
S'il vous plaît modifier votre question pour contenir [mcve] – Slava