我是功能新手,我试图列出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();
}
答案 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,你会得到一个警告。