C ++ Переключатель и символы

В настоящее время я использую операторы switch с c ++, я работал над некоторыми примерами и использовал независимый пример для завершения. В качестве примера я выбрал конвертер валют из евро в фунт стерлингов. Во всех случаях мой код возвращался к значению по умолчанию, как будто был введен неправильный блок. Это происходило до тех пор, пока я не изменил свой ввод с символа «€» или «£» на «E» или «P». Я хотел бы знать, где я ошибся. пример моего кода ниже.

// 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;
}

0

Решение

£ является символом Unicode, и поэтому не вписывается в 8-бит char, Ваш компилятор, надеюсь, дал предупреждение, как warning: multi-character character constant для рассматриваемой строки.

Вы должны быть в состоянии исправить это с помощью:

#include <cwchar>

...

wchar_t x = u'£';
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector