我试图用C++制作一个银行程序,在那里你可以查看钱包里的金额,以及你的银行账户中的存款和取款金额.当我尝试运行它时,它让我输入,但是当我输入任何内容时,它会Money in Wallet: 20
一次又一次地重复,直到我得到堆栈溢出,我认为这有点讽刺,在一个名为Stack Overflow的网站上发布.
到目前为止这是我的代码:
#includeusing namespace std; float money= 20.00; float account=100.00; float amount; bool cmd; void wallet() { cout<<"Money in Wallet: "< >amount; if (money>=amount) { account = account+amount; money = money-amount; } else { cout<<"You don't have enough money!\n"; } } void withdraw() { cout<<"How much do you want to withdraw?: "; cin>>amount; if(account>=amount) { money = money+amount; account = account-amount; } else { cout<<"There isn't enough money in your bank account!\n"; } } void prompt() { cmd="null"; cout<<">"; cin>>cmd; if (cmd="wallet") { wallet(); cmd="null"; prompt(); } else{ cout<<"Unknown Command."; cmd="null"; prompt(); } if (cmd="bank") { bank(); } else{cout<<"Unknown Command.";} if (cmd="deposit") { deposit(); } else{cout<<"Unknown Command.";} if (cmd="withdraw") { withdraw(); } else{cout<<"Unknown Command.";} } int main() { prompt(); }
请帮忙!
我可以看到您的代码存在多个问题.
首先,您正在调用函数prompt()
内部的函数,导致它一遍又一遍地递归调用它,直到您有一个stackoverflow.
其次,将输入存储在bool中.你可能想要使用std::string
第三,在if语句中,您不会检查值是否相等,而是在使用=
运算符时进行设置.如果要检查两个值是否相等,请使用==
符号.
第四,你对if
声明的使用是错误的.如果要检查多个条件的值,则应将它们全部放在if else
彼此之后.你正在做的是将它们分成多个if语句,每个语句都遵循打印的else条件Unknown Command.
]
看到这看起来如何看作业,我不会给你完整的代码,让你有机会学习.但如果你修正了上面的要点,那么你就可以开始使用功能性程序了.