提问者:小点点

货币转换器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;

}

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


共1个答案

匿名用户

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

其次,if(cin>>$);并没有做您认为它做的事情。它所做的所有工作都是向$变量中读取一些内容,并且不管cin实际读取了什么内容都要继续,因为if语句以分号结尾。之后的代码将被执行,而不管cin实际读取了什么。相反,你应该做

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

注意花括号的使用。

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

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(货币|转换器|c++|给出|括号|关闭)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?