2017-04-09 5 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

は、そのエラーは、他のように、1つのオペランドをキャストすることによって解決することができます - 他の言葉でauthlogはmyfileと同じタイプではないようです。

編集:この場合もファイルを消去しているので、authlog = ""を実行してください。

いずれの場合でも、ファイルを文字列として扱うことはできません。文字列を文字列に保存したり、文字列を取り出すことはできますが、文字列ではありません。

+0

ありがとうございますが、文字列authが文字列authlogと等しいかどうかを確認しようとしています。たとえ私が 'if(auth == myfile)しても、それはまだ動作しません。 – Loopahnoob

+0

これは、myfileが文字列でないためです。 –

0

すべての方に感謝します。 問題は、私は、コードに

while (getline (myfile,auth)) 

を入れるのを忘れていることです。

関連する問題