2017-04-09 1 views
-2

진행 상황을 저장할 수있는 게임을 만들려고합니다. 이미이 작업을 수행했지만 작동했지만 이제는 더 이상 작동하지 않습니다.'authlog = myfile'의 'operator ='에 대한 모호한 오버로드

오류 : 오류의 원인이되는

43: Ambiguous overload for 'operator=' in 'authlog = myfile'
note: candidates are: std::basic_string<_CharT,_Traits,_Alloc>& std::basic_string<_CharT,Traits,..........etc

코드 : 내 경험에

if (myfile.is_open()) 
    { 
     while (getline (myfile,line)) 
     { 
      cout << "You already have a save file!\n"; 
     } 
     myfile.close(); 
     myfile.clear(); 
     authlog = myfile; 
     myfile.open("username.txt"); 
     cout << "Enter your username:\n"; 
     cin >> auth; 
     if(auth == authlog) 
     { 

     } 
    } 
+0

'authlog'의 종류는 무엇입니까? – Jiahao

+0

이것은 오류의 원인이되는 코드가 아닙니다 ... authlog 코드를 제출하십시오 .. – Arvindsinc2

+0

Authlog는 문자열이지만 여기에 표시되지 않습니다. – Loopahnoob

답변

0

는, 그 오류는 다른으로 하나의 피연산자를 캐스팅하여 해결할 수 있습니다 - 즉 authlog가 myfile과 같은 유형이 아닐 수도 있습니다.

편집 :이 경우 파일을 삭제하기 때문에 authlog = "";

어떤 경우에도 파일을 문자열로 처리 할 수 ​​없습니다. 문자열을 저장하거나 문자열을 빼낼 수는 있지만 문자열이 아닙니다.

+0

감사 합니다만, 문자열 인증이 문자열 authlog와 동일한 지 식별하려고합니다. 비록 내가 'if (auth == myfile)이라하더라도 여전히 작동하지 않을 것입니다. – Loopahnoob

+0

오른쪽 - myfile이 문자열이 아니기 때문입니다. –

0

답변 해 주신 모든 분들께 감사드립니다. 문제는 내가 잊어 버렸습니다.

while (getline (myfile,auth)) 

코드에 있습니다.

관련 문제