首页 > 解决方案 > 货币转换器 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;

}

我试着做一个货币转换器,但我的代码直到美元不会运行,所以我还没有写欧元或日元。感谢您的答复。

标签: c++

解决方案


首先,不要将这些符号用作变量名,因为它们不是 ASCII 字符,可能会弄乱。

其次,if (cin >> $);不做你认为它做的事。它所做的一切都是将某些内容读入$变量中,并且无论 cin 实际读取什么都继续前进,因为 if 语句以分号终止。之后的代码将被执行,无论 cin 实际读取什么。相反,你应该这样做

if (condition) {
    thing to execute if condition is true
}

注意大括号的使用。

第三,这不是您检查输入字符串是否与美元符号匹配的方式。您应该做的是将输入读入一个变量,然后将该变量与货币符号进行比较。


推荐阅读