需要帮助从不同函数(C+;+;)输出内容 我对C++和编码都比较陌生。我试图做一个基本的多选类型的练习游戏,但我遇到了一个难题

需要帮助从不同函数(C+;+;)输出内容 我对C++和编码都比较陌生。我试图做一个基本的多选类型的练习游戏,但我遇到了一个难题,c++,C++,程序也没有输出我想要的东西。代码如下: #include <iostream> #include <cstdlib> #include <ctime> #include <string> using namespace std; void sword(int damage); void fists(int damage); static int enemyHealth = 250; int main() { srand(time(0

程序也没有输出我想要的东西。代码如下:

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>

using namespace std;

void sword(int damage);
void fists(int damage);

static int enemyHealth = 250;

int main() {
    srand(time(0));

    string SOF; //Abreveation for "Sword Or Fists"

    cout << "You will be fighting a mean bad guy. Are you using a sword, or your fists?\n";

    while (SOF != "sword" && SOF != "fists"){
        cout << "Please enter your choice of either 'sword' or 'fists': ";
        cin >> SOF;
    }

    cout << "Okay! Time to fight! \n";

    if (SOF == "fists") {
        void fists();
    }
    else if (SOF == "sword") {
        void sword();
    }
    else{ (NULL); }

    cout << "Congratulations! You have vanquished that foul beast!\n";

    system("pause");
}

//This is for when the user chooses 'sword'
void sword(int damage = rand() % 100 + 50) {
    while (enemyHealth > 0){
        cout << "You deal " << damage << " damage with your sharp sword. \n";
        enemyHealth -= damage;
    }
}

//This is for when the user chooses 'fists'
void fists(int damage = rand() % 10 + 4) {
    while (enemyHealth > 0){
        cout << "You deal " << damage << " damage with your womanly fists. \n";
        enemyHealth -= damage;
    }
}
但我希望它输出用拳头或剑造成的伤害


如果我能得到一些帮助,那就太棒了。谢谢

要调用函数,不要编写
void fists(),刚刚

fists();

(您拥有的是一个声明,它在这里没有任何有用的效果,而不是一个调用。)

要调用该函数,请不要编写
void fists(),刚刚

fists();
(您所拥有的是一个声明,在这里没有任何有用的效果,而不是一个调用。)

void fists()是一个声明,不是调用,改为
fists()
剑()

其他需要注意的事项:

  • 默认参数在
    main
    之前的函数声明中声明(或者只是将整个函数移到那里)
  • < LI> C++中的缺省参数被计算一次,所以所有的“命中”在代码中都是相同的。
  • 局部变量名称通常不以大写字母命名,
    SOF
    看起来像是一个
    #define
    d常量之类的
无效拳头()是一个声明,不是调用,改为
fists()
剑()

其他需要注意的事项:

  • 默认参数在
    main
    之前的函数声明中声明(或者只是将整个函数移到那里)
  • < LI> C++中的缺省参数被计算一次,所以所有的“命中”在代码中都是相同的。
  • 局部变量名称通常不以大写字母命名,
    SOF
    看起来像是一个
    #define
    d常量之类的

回答得好。我还建议在else{(NULL);}中省略(NULL)}非常感谢您的回复,但是现在我已经纠正了这个错误,我得到了一个不同的错误:错误C2660:“fists”:函数不接受0个参数,我也收到了“剑”的相同错误。我对我对C++的一些小知识表示感谢,谢谢你的帮助。@ VulyMcdodo-这是因为默认参数应该在上面的代码>主< /代码>的声明(也见其他建议的答案)AHHHH我明白。非常感谢你,好先生。程序现在运行得很好。回答得好。我还建议在else{(NULL);}中省略(NULL)}非常感谢您的回复,但是现在我已经纠正了这个错误,我得到了一个不同的错误:错误C2660:“fists”:函数不接受0个参数,我也收到了“剑”的相同错误。我对我对C++的一些小知识表示感谢,谢谢你的帮助。@ VulyMcdodo-这是因为默认参数应该在上面的代码>主< /代码>的声明(也见其他建议的答案)AHHHH我明白。非常感谢你,好先生。程序现在运行得很好。非常感谢您的响应,但是现在我已经纠正了这个错误,我得到了一个不同的错误:错误C2660:“fists”:函数不接受0个参数,我也收到了“剑”的相同错误。我对我的C++知识表示歉意,谢谢你的帮助。非常感谢你的回复,但是现在我已经纠正了这个错误,我得到了一个不同的错误:错误C2660:“拳头”:函数不需要0个参数,我也收到同样的错误。我对我的C++知识很抱歉,谢谢你的帮助。