C++ Bank程序无法正常堆栈溢出

 鱼儿7秒的记忆_710 发布于 2023-02-06 17:06

我试图用C++制作一个银行程序,在那里你可以查看钱包里的金额,以及你的银行账户中的存款和取款金额.当我尝试运行它时,它让我输入,但是当我输入任何内容时,它会Money in Wallet: 20一次又一次地重复,直到我得到堆栈溢出,我认为这有点讽刺,在一个名为Stack Overflow的网站上发布.

到目前为止这是我的代码:

#include 
using 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();
}

请帮忙!

1 个回答
  • 我可以看到您的代码存在多个问题.

    首先,您正在调用函数prompt()内部的函数,导致它一遍又一遍地递归调用它,直到您有一个stackoverflow.

    其次,将输入存储在bool中.你可能想要使用std::string

    第三,在if语句中,您不会检查值是否相等,而是在使用=运算符时进行设置.如果要检查两个值是否相等,请使用==符号.

    第四,你对if声明的使用是错误的.如果要检查多个条件的值,则应将它们全部放在if else彼此之后.你正在做的是将它们分成多个if语句,每个语句都遵循打印的else条件Unknown Command.]

    看到这看起来如何看作业,我不会给你完整的代码,让你有机会学习.但如果你修正了上面的要点,那么你就可以开始使用功能性程序了.

    2023-02-06 17:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有