用于返回两个用户输入值的函数

Sim*_*n_A 4 c++

我希望能够有一个函数,只需从用户获取两个输入值,并返回要使用的main函数的值.

我希望值a和b只驻留在getvals函数中,并作为x和y传递给main函数.

我想我可能会在这里采取错误的方式,因为我经常搜索并找不到任何类似的方法来做到这一点,但任何帮助都会受到赞赏.

#include <iostream>

using namespace std;


int x = 100;
int y = 42;
int result1;
int result2;
int a;
int b;

int getvals(int,int)
{
    cout << "input value a ";
    cin >> a;
    cout << "input value b ";
    cin >> b;

    return a,b;
}

int main()
{
    getvals(x,y);
    result1 = x + y;


    cout << "\n\n";
    cout << " x + y = " << result1;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Ben*_*ley 8

您只能从函数返回一个值.幸运的是,您可以在结构或类中包装两个值,并将其作为一个对象返回.这正是std::pair为此而设计的.

std::pair<int,int> getvals()
{
    std::pair<int,int> p;
    cout << "input value a ";
    cin >> p.first;
    cout << "input value b ";
    cin >> p.second;

    return p;
}

int main()
{
    std::pair<int,int> p = getvals();
    int result1 = p.first + p.second;
    ...
}
Run Code Online (Sandbox Code Playgroud)

C++ 11引入了更一般的std::tuple,允许任意数量的元素.

std::tuple<int,int> getvals()
{
    int a,b;
    cout << "input value a ";
    cin >> a;
    cout << "input value b ";
    cin >> b;

    return std::make_tuple(a,b);
}

int main()
{
    int x,y;
    std::tie(x,y) = getvals();
    ...
}
Run Code Online (Sandbox Code Playgroud)