c++ 如何在函数之间传递值?

ca1c2owp  于 2023-04-01  发布在  其他
关注(0)|答案(2)|浏览(99)

我试着列出3个选项。如果我键入“1”,选项1应该被打印出来。但我不知道如何打印结果。
我目前的尝试是:

#include <iostream>
using namespace std;

int Menu(int a)
{
    cout << "Choose an option: " << endl;
    cout << "1.Option 1" << endl;
    cout << "2.Option 2" << endl;
    cout << "3.Option 3" << endl;
    cin >> a;
    return a;
}

char printResult()
{
    char op;

    if (op == '1')
        cout << "OPTION 1";
    if (op == '2')
        cout << "OPTION 2";
    if (op == '3')
        cout << "OPTION 3";
    }

int main()
{   
    char op;
    int a;
    Menu(a);
    printResult();
}
brjng4g3

brjng4g31#

你需要将值从int的位置传递到处理/输出的位置:

char Menu()
{
    char a;
    cout << "Choose an option: " << endl;
    cout << "1.Option 1" << endl;
    cout << "2.Option 2" << endl;
    cout << "3.Option 3" << endl;
    cin >> a;
    return a;
}

void printResult(char op)
{
    if (op == '1')
        cout << "OPTION 1";
    if (op == '2')
        cout << "OPTION 2";
    if (op == '3')
        cout << "OPTION 3";
}

int main()
{   
    char op = Menu();
    printResult(op);
}

注意,像void printResult(char op) { ...这样的函数参数与像void printResult() { char op; ...这样的局部变量不同。前者消耗一个需要由函数调用者传递的值,例如printResult('1')printResult(someVariable)。后者不接受任何参数,但使用“局部”变量,该变量仅在函数体范围内可见和有效-因此无法通过这种方式将值从外部传输到内部,反之亦然。

ogsagwnx

ogsagwnx2#

Menu有返回值和参数,但实际上只需要返回值。

int Menu()

printResult不需要返回任何东西,但需要知道值是什么,因此将其传入

void printResult(int a)
{
    if (op == 1)
        cout << "OPTION 1";
    if (op == 2)
        cout << "OPTION 2";
    if (op == 3)
        cout << "OPTION 3";
}

然后main可以稍微简化一下。

int main()
{   
    int a = Menu();
    printResult(a);

    return 0;
}

我添加了“返回0;因为main被声明为返回一个int,你会得到一个警告。

相关问题