gpt4 book ai didi

c++ - 无法将参数 2 从 'std::string *' 转换为 'std::string'

转载 作者:行者123 更新时间:2023-11-28 02:39:36 31 4
gpt4 key购买 nike

不确定为什么会这样,似乎一切都按应有的方式排列,除非我遗漏了什么。我无法传递这些变量,无论我尝试向编译器抛出什么,它只会给我另一个错误。

到目前为止,这是我的代码。

void parse(string name, string storage_1, string storage_2, string storage_3)
{//some code
}

//some more code

int start = 0;
int length = 0;
string param_1, param_2, param_3;



while (!infile.eof())
{
if (!infile)
{
cout << "ERROR: File " << file << " could not be located!" << endl << endl;
break;
}

param_1.clear();
param_2.clear();
param_3.clear();
line_input.clear();

getline(infile, line_input);

parse(line_input, &param_1, &param_2, &param_3);

cout << param_1 << endl << param_2 << endl << param_3 << endl << endl;
}

最佳答案

在函数声明中:

void parse(string name, string storage_1, string storage_2, string storage_3)

第二个、第三个和第四个参数是按值传递的字符串

但是在函数调用中:

string param_1, param_2, param_3;
parse(line_input, &param_1, &param_2, &param_3);

您正在将地址传递给这些字符串(指针)。

您可以将声明更改为:

void parse(string name, string* storage_1, string* storage_2, string* storage_3)

或者更改函数调用以使用引用:

void parse(string name, string& storage_1, string& storage_2, string& storage_3)
parse(line_input, param_1, param_2, param_3);

关于c++ - 无法将参数 2 从 'std::string *' 转换为 'std::string',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26416695/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com