2016-10-28 2 views
-1

파일을 쓰는 함수를 만들려고하는데 문자열을 매개 변수로 전달하는 데 문제가 있습니다.오류 : 'std :: string * {aka std :: basic_string <char> *}'에서 '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>}'| 
+0

''unsortedValues'는 무엇입니까? – songyuanyao

+0

변수'unsortedValues'는 어디에 있습니까? 오류는'string' 대신'string *'임을 나타냅니다. – Barmar

+0

그것은'unsortedValues' 대신에'letters'이어야합니까? – Barmar

답변

2

string 항목의 배열 형식 인수 단일 string이다 실제 인수로서 전달된다.

배열을 단일 문자열로 바꿀 수 있습니다.

또는 세트를 사용하거나 용도에 관계없이 호출 된 함수를 적절히 변경해야합니다. 배열 식 어레이는 기준에 결합되어 있지 않기 때문에이 수행하는 첫 번째 항목에 대한 포인터를 나타내는 식에을 붕괴하기 때문에


오류가 std::string[9] 같은 배열 대신 std::string* 언급 또는 sizeof 또는 식의 배열 속성을 유지해야하는 모든 항목으로 전달됩니다.

0

문제

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) 
에 난 함수 두번째 파라미터를 변경하여 "고정"문자열의 배열이며, 문자열을 기대되지만이었다

"고정 된"i는 이제 "output.txt"라는 파일을 만들지 만 관계없이 ntent는 두 번째 매개 변수로 전달 된 문자열의 배열이 아닙니다.

관련 문제