簡體   English   中英

錯誤:無法從&#39;std :: string * {aka std :: basic_string轉換 <char> *}&#39;為&#39;std :: string {aka std :: basic_string <char> }&#39;|

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM