C++ 如何使用从一个函数到另一个函数的变量?

标签 c++ function variables parameters parameter-passing

郑重声明,我对 C++ 和任何其他编程语言都完全陌生,所以如果可能的话,如果你能以我能理解的方式回答,我会很高兴:)

我最近一直在开发一个简单的剪刀石头布游戏,我有 3 个基本功能,一个给用户,一个给机器人,一个选择谁赢得游戏。

我知道使用 system("cls") 不是最好的方法,但我不打算在 Windows 之外使用它。

最终函数 results() 需要使用前两个函数中的变量 xbrand ,但是我似乎不能找到一种方法来做到这一点。人们在其他地方解释它的地方,他们解释的对我来说太高级了。请记住,我不需要更改它们中的任何一个,我只需比较它们以确定获胜者。

我将在此处向您展示我的代码,以便您了解您正在处理的内容。 请给我关于我可以在这里改进的其他事情的评论。

#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <windows.h>

using namespace std;
int bgame(), ugame(), results();
int main()
{
    srand(time(NULL));
    cout<<"Welcome to RPS!\n" <<"You know what to do.\n" <<"\n[ENTER]";
    cin.ignore();
    system("cls");
    ugame();

    return 0;
}

int ugame()
{
    int x;
    cout<<"Type a number from 1-3: ";
    cin>> x;
    cin.ignore();

    if ( x == 1 )
    {
        cout<<"\nYou chose rock!\n" <<"\n[ENTER]";
        cin.ignore();
        bgame();
    }
    else if ( x == 2)
    {
        cout<<"\nYou chose paper!\n" <<"\n[ENTER]";
        cin.ignore();
        bgame();
    }
    else if ( x == 3 )
    {
        cout<<"\nYou chose scissors!\n" <<"\n[ENTER]";
        cin.ignore();
        bgame();
    }
    else
    {
        cout<<"\nTry again.\n" <<"\n[ENTER]";
        cin.ignore();
        ugame();
        system("cls");
    }
    return 0;
}


int bgame()
{
    int brand = rand()>>4;

    system("cls");
    cout<<"The bot will now choose an item.\n" <<"\n" <<"[ENTER]\n";
    cin.ignore();
    brand = rand() % 3 + 1;

    if ( brand == 1)
    {
        cout<<"\nBot chose rock!";
        cin.ignore();
        results();
    }
    else if ( brand == 2 )
    {
        cout<<"\nBot chose paper!";
        cin.ignore();
        results();
    }
    else if ( brand == 3 )
    {
        cout<<"\nBot chose scissors!";
        cin.ignore();
        results();
    }
    else
    {
        cout<<"\nError.";
        cin.ignore();
        bgame();
        system("cls");
    }
    return 0;
}

int results()
{

}

最佳答案

您可以向函数发送“参数”。 这就是创建变量的拷贝,您可以在另一个函数中使用它。

你需要像这样用你的函数名(即原型(prototype))指定它:

int results(int x, int brand)

你输入一个类型名和一个变量名。 例如,此函数将采用 2 个 int 作为参数。

int results(int x, int brand)
{
   // do something with your variables
}

当你调用你输入的函数时:

results(x, brand);

如果需要,此链接会用图片和示例以及更多详细信息对其进行解释:http://www.cplusplus.com/doc/tutorial/functions/

关于C++ 如何使用从一个函数到另一个函数的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17718601/

相关文章:

c++ - boost::archive::binary_oarchive = 程序崩溃?

javascript - SetInterval函数调用

c - C中的函数通信

python - 应该定义 undefined variable ,但我把它弄得太复杂了

c++ - 对于单精度矩阵运算,AVX 与 SSE 的 Eigen 性能没有差异?

c++ - 添加到 vector 或从 vector 中删除后,指向 vector 元素的指针是否保留(在 C++ 中)

质因数的 C++ 程序

javascript - 如何创建包含变量输入的函数的变量

javascript - 等待 3 秒查看变量是否更改,然后触发某些内容

javascript - 在javascript中的函数内部访问函数内部的变量?