C++ Switch语句,无法识别的输入

C++ Switch语句,无法识别的输入,c++,switch-statement,C++,Switch Statement,在使用if-else编写货币转换代码之后,我正在研究“编程原则和实践”,我正在使用switch语句编写一个 我有5种货币需要兑换,其中4种货币工作正常,1种(欧元,欧元)不工作。我不明白为什么,尽管我确信这很简单 这是我的密码 #include <iostream> int main(){ constexpr double yen_to_dollars = 0.0091; constexpr double euro_to_dollars = 1.071; constexpr do

在使用if-else编写货币转换代码之后,我正在研究“编程原则和实践”,我正在使用switch语句编写一个

我有5种货币需要兑换,其中4种货币工作正常,1种(欧元,欧元)不工作。我不明白为什么,尽管我确信这很简单

这是我的密码

#include <iostream>

int main(){

constexpr double yen_to_dollars = 0.0091;
constexpr double euro_to_dollars = 1.071;
constexpr double pound_to_dollars = 1.279;
constexpr double yuan_to_dollars = 0.1452;
constexpr double kroner_to_dollars =0.1174;

double amount = 1;
char currency = ' ';

   std::cout<<"Please enter an amount, followed by the type of currency you want to convert (Y, E, P, Z, K): \n";
   std::cin >> amount >> currency;


    switch(currency){

    case 'Y':

        std::cout << amount << " Yen = " << yen_to_dollars*amount << " dollars\n";

    break;

    case 'E':

        std::cout << amount << " Euros = " << euro_to_dollars*amount << " dollars\n";

    break;

    case 'P':

        std::cout << amount << " Pounds = " << pound_to_dollars*amount << " dollars\n";

    break;

    case 'Z':

        std::cout << amount << " Yuan = " << yuan_to_dollars*amount << " dollars\n";

    break;

    case 'K':

        std::cout << amount << " Krone = " << kroner_to_dollars*amount << " dollars\n";

    break;

    default:

        std::cout << "That currency is unrecognised\n";

    break;



    }


}
#包括
int main(){
constexpr双日元兑美元=0.0091;
constexpr双倍欧元兑美元=1.071;
constexpr双英镑兑美元=1.279;
constexpr双倍人民币兑美元=0.1452;
constexpr双倍克朗兑美元=0.1174;
双倍金额=1;
字符货币=“”;
标准::金额>>货币;
交换机(货币){
案例“Y”:

std::cout
case'Z'
对应“元”?对于哪种货币,它不起作用?在进入开关之前,您是否尝试打印出这两个值?以确保它们符合您的预期?@Ross_Barkley您的代码工作正常。您是否在数字和字母之间留有空格?如果没有,则将E解释为数字的一部分。
大小写“Z”
对应“元”?对于哪种货币,它不起作用?在进入开关之前,您是否尝试打印这两个值?以确保它们符合您的预期?@Ross_Barkley您的代码工作正常。您是否在数字和字母之间留有空格?如果没有,则将E解释为数字的一部分。