![](/img/trans.png)
[英]std::string {aka std::basic_string<char>}' to 'char*' in assignment|
[英]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]
,因為數組表達式會衰減為表示指向第一個項目的指針的表達式,因為數組未綁定到a引用或傳遞給sizeof
或必須保留表達式的數組性質的任何內容。
問題是
void writeFile(string filename, string letters, int size)
正在期待一個字符串,但是,
string letters[] = {"u", "l", "s", "n","m", "z", "a", "p", "b"};
是一個字符串數組,我通過將函數的第二個參數更改為“固定”它
void writeFile(string outputFileName, string words[], int arraylength)
“固定”是指無論現在它確實創建了一個名為“ output.txt”的文件,但內容不是作為第二個參數傳遞的字符串數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.