error: could not convert from 'std::string* {aka std::basic_string<char>*}' to 'std::string {aka std::basic_string<char>}'|
error: could not convert from 'std::string* {aka std::basic_string<char>*}' to 'std::string {aka std::basic_string<char>}'|
我正在尝试创建一个写入文件的函数,但我在将字符串作为参数传递时遇到了问题。
void writeFile(string filename, string letters, int size)
{
ofstream outputfile("output.txt");
outputfile << letters;
outputfile.close();
}
int main()
{
string letters[] = {"u", "l", "s", "n","m", "z", "a", "p", "b"};
int size = 9;
string filename = "Inputfile.txt";
writeFile(inputfilename.c_str(),letters,size);
}
出现这个错误。
error: could not convert from 'std::string* {aka std::basic_string<char>*}' to 'std::string {aka std::basic_string<char>}'|
string
项的数组作为实际参数传递,其中形式参数是单个 string
。
您可以用单个字符串替换数组。
或者用一个集合,或者任何适合目的的东西,但是你必须相应地改变被调用的函数。
错误提到 std::string*
而不是数组,例如 std::string[9]
,因为数组表达式 decays 到表示指向第一项的指针的表达式,这是因为数组没有绑定到引用或传递给 sizeof
或任何必须保留表达式的数组性质的地方。
问题在于
void writeFile(string filename, string letters, int size)
需要一个字符串但是,
string letters[] = {"u", "l", "s", "n","m", "z", "a", "p", "b"};
是一个字符串数组,我"fixed"它通过将函数第二个参数改为
void writeFile(string outputFileName, string words[], int arraylength)
with "fixed" 我的意思是不管现在它会创建一个名为 "output.txt" 的文件,但内容不是作为第二个参数传递的字符串数组。
我正在尝试创建一个写入文件的函数,但我在将字符串作为参数传递时遇到了问题。
void writeFile(string filename, string letters, int size)
{
ofstream outputfile("output.txt");
outputfile << letters;
outputfile.close();
}
int main()
{
string letters[] = {"u", "l", "s", "n","m", "z", "a", "p", "b"};
int size = 9;
string filename = "Inputfile.txt";
writeFile(inputfilename.c_str(),letters,size);
}
出现这个错误。
error: could not convert from 'std::string* {aka std::basic_string<char>*}' to 'std::string {aka std::basic_string<char>}'|
string
项的数组作为实际参数传递,其中形式参数是单个 string
。
您可以用单个字符串替换数组。
或者用一个集合,或者任何适合目的的东西,但是你必须相应地改变被调用的函数。
错误提到 std::string*
而不是数组,例如 std::string[9]
,因为数组表达式 decays 到表示指向第一项的指针的表达式,这是因为数组没有绑定到引用或传递给 sizeof
或任何必须保留表达式的数组性质的地方。
问题在于
void writeFile(string filename, string letters, int size)
需要一个字符串但是,
string letters[] = {"u", "l", "s", "n","m", "z", "a", "p", "b"};
是一个字符串数组,我"fixed"它通过将函数第二个参数改为
void writeFile(string outputFileName, string words[], int arraylength)
with "fixed" 我的意思是不管现在它会创建一个名为 "output.txt" 的文件,但内容不是作为第二个参数传递的字符串数组。