我一直在尝试创建一个将其他形式的全球货币(如日元,克朗和英镑)转换为美元的工作计划。我已经尝试设置货币价值(转换为美元),参考谷歌的经济汇率。 该程序利用constexprs初始化对应于不同货币的数值,以及使用switch语句表示转换的不同货币的字符。但是,我无法按预期工作。
在运行时,在编译项目构建之后,任何值都会自动引用switch语句的“default:”段。 关于我如何才能使其正常工作的任何帮助表示赞赏。
我的包含来自标准C ++库头,其中主标题包括:#include iostream #include fstream #include sstream #include cmath #include cstdlib #include string #include list #include vector #include algorithm #include stdexcept < / p>
这是我的代码:
int main()
{
constexpr double yuan_to_dollar = 0.15; // conversion to USD -- values cannot be modified at runtime
constexpr double kroner_to_dollar = 0.15;
constexpr double pound_to_dollar = 1.42;
char currency;
char yuan = 'a';
char kroner = 'b';
char pound = 'c';
double amount = 1;
cout << "Please enter an integer amount in currency: \n";
cin >> currency >> amount >> yuan >> kroner >> pound; // inputs currency double values
switch (currency) {
case 'a':
cout << yuan << "is == " << yuan_to_dollar * 'a' * amount << "currency \n";
case 'b':
cout << kroner << "is == " << kroner_to_dollar * 'b' * amount << "currency \n";
case 'c':
cout << pound << "is == " << pound_to_dollar * 'c' * amount << "currency \n";
default:
cout << "Sorry, I could not determine a suitable form of: " << currency << "currency \n";
}
return 0;
}
答案 0 :(得分:1)
开关/案例的正确形式是:
switch(currency) {
case 'a':
// code in case of a here
break;
case 'b':
// code for b here
break;
default:
// default case
}
否则你只是落实所有陈述。
也不要乘以'a','a'的整数值为97,所以在a的情况下你乘以0.15 * 97。
您的输入似乎也不是您想要的。
你写的方式: cin&gt;&gt;货币&gt;&gt;金额&gt;&gt;元&gt;&gt;克朗&gt;&gt;磅;
将输入字符(货币),金额(双倍)和三个字符(元,克朗,英镑)。你这样做会覆盖这些字符。