c++ - 货币转换器 C++ 给出括号错误
问题描述
这是我的代码:
#include"std_lib_facilities.h"
int main()
{
cout << "Which currency do you wanna exchange for, $? €? or ¥?:\n";
string currency;
string dollars;
string euros;
string yen;
char $;
char €;
char ¥;
if (cin >> $);
cout << "You have chosen dollars.\n";
cout << "Please enter your amount:\n";
int amount;
cin >> amount;
cout << "Your amount is:" << amount*153 << "PKR" << endl;
keep_window_open();
return 0;
}
我试着做一个货币转换器,但我的代码直到美元不会运行,所以我还没有写欧元或日元。感谢您的答复。
解决方案
首先,不要将这些符号用作变量名,因为它们不是 ASCII 字符,可能会弄乱。
其次,if (cin >> $);
不做你认为它做的事。它所做的一切都是将某些内容读入$
变量中,并且无论 cin 实际读取什么都继续前进,因为 if 语句以分号终止。之后的代码将被执行,无论 cin 实际读取什么。相反,你应该这样做
if (condition) {
thing to execute if condition is true
}
注意大括号的使用。
第三,这不是您检查输入字符串是否与美元符号匹配的方式。您应该做的是将输入读入一个变量,然后将该变量与货币符号进行比较。
推荐阅读
- java - Spring JmsListener 不接收消息
- spring - op ANY/ALL (array) 需要右侧的数组 Postgresql Spring Data JPA
- javascript - 有条件地使用material-ui默认道具
- nlp - 在 spacy 中使用 token.morph 时出错
- javascript - 子路由未显示在 Vue-router 中
- jenkins - 从多分支管道中的文件填充选择参数
- flutter - 未处理的异常:CameraException(captureTimeout, 图片捕获请求超时)
- algorithm - 什么数据结构可以实现比O(n)时间更好的随机pop和push?
- java - 尝试更改android studio中的默认活动
- haskell - 在 Haskell 中转换为二进制表示法