2016-04-04 9 views
-1

versuchen, mit einer Struktur, Studenten (Vorname) eine Textdatei in einem Array zu setzen, aber es ausdrückteArray und stucture mit Text-Datei

Fehler C2679: binary ‚>>‘: kein Betreiber gefunden, der eine rechts- nimmt Hand Operand vom Typ ‚Students‘ (oder gibt es keine akzeptable Umwandlung)))

Students stud[15]; 
ifstream myfile; 
myfile.open("student.txt"); 
for (int i = 0; i<14; i++) 
{ 
    myfile >> stud[i]; 
    cout << stud[i] << endl; 
} 
myfile.close(); 
+1

Welcher Teil der Fehlermeldung ist unklar? –

Antwort

0

im Students Klassenkonstruktors es sieht aus wie Sie eine Variable sind, die ihre Vornamen zu halten, so dass, wenn Zugabe zu die Textdatei, die Sie für diese Variable aufrufen müssen, nicht das gesamte Student-Objekt.

Wobei firstName der Name einer beliebigen Variablen ist, die FirstName aus dem Student-Konstruktor enthält.

0

Basierend auf der Fehlermeldung fehlt Students io Stream-Überladungen. Du wirst sie schreiben müssen.

class Students 
{ 
    //rest of Students definition 
    friend ostream& operator<< (ostream& out, const Students & val) 
    { 
     out << val.firstMember << " " << val.secondMember << " " << ... << '\n'; 
    } 
    friend istream& operator>> (istream& in, const Students & val) 
    { 
     std::string line; 
     if (std::getline(in, line)) 
     { 
      std::stringstream linestream(line); 
      if (! linestream >> val.firstMember >> val.secondMember >> ...) 
      { 
       // handle error? 
      } 
     } 
    } 
}; 

Hinweis: Je nach den Anforderungen Ihres Ausgabeformats sind möglicherweise mehr Intelligenz und intelligentere Begrenzer erforderlich.