从函数获取输入 - 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)
如果没有“&”运算符,您只是将变量的副本发送到函数中,使用“&”地址运算符,您将通过引用传递变量
我在 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)
如果没有“&”运算符,您只是将变量的副本发送到函数中,使用“&”地址运算符,您将通过引用传递变量