功能[新手]

时间:2018-02-07 12:57:51

标签: c++ list function

我是功能新手,我试图列出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();
}

2 个答案:

答案 0 :(得分:1)

您需要将值从放置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)。后者不接受任何参数,但使用“局部”变量,该变量仅在函数体的范围内可见且有效 - 因此无法通过这种方式将值从外部传输到内部,反之亦然。

答案 1 :(得分:0)

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;
}

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