从函数获取输入 - C++

Getting Input from a Function - c++

我在 c++ 中遇到了一个问题,我调用了一个为事物赋值的函数,但这些赋值在函数完成后丢失了。这是我的代码:

#include <iostream>
#include <string>

using namespace std;

void Input(string a, string b){

    cout << "Input a: \n";
    cin >> a;
    cout << endl;

    cout << "Input b: \n";
    cin >> b;
    cout << endl << "Inputen Strings (still in the called function): \n";
    cout << a << " " << b << endl << endl;
};

int main(){
    string c = "This didn't";
    string d = "work";

    Input(c,d);

    cout << "Inputen Strings (now in the main function): \n";
    cout << c + " " + d << endl;

    return 0;
};

所以每当我 运行 它时,(输入“Hello”然后“World”)程序 运行s 如下:

Input a:

Hello

Input b:

World

Inputen Strings (still in the called function):

Hello World

Inputen Strings (now in the main function):

This didn't work

我不知道为什么它只是暂时保存值。感谢您的帮助!

通过引用传递您的字符串,这将允许被调用函数更改它们,以便调用函数中的变量将具有分配的值。

现在按值传递的方式,您只是发送变量的副本,因此当 Input returns.

时新值将丢失
void Input(string &a, string &b)
{
  ...
}

更改您的方法签名以接受变量“&”的地址

void Input(string &a, string &b)

如果没有“&”运算符,您只是将变量的副本发送到函数中,使用“&”地址运算符,您将通过引用传递变量