Die cout-Anweisung in dieser for-Schleife:C++ cout Überschreiben selbst, während in für Schleife
for (vector<Student>::iterator qw = students.begin(); qw != students.end(); ++qw){
Student a = *qw;
name = a.getName();
regno = a.getRegNo();
std::cout << "Name: "<< name << " Reg Number: " << regno << endl;
}
einige seltsame Verhalten schafft, was die cout etwas gedruckt werden soll wie folgt aus:
Name: Mike Sanderson Reg-Nummer: 10101
jedoch, die er druckt tatsächlich aus es:
Reg-Nummer: 10101on
Es scheint mir, dass nach dem zweiten Teil der cout-Anweisung an den Anfang der Zeile geht zurück und überschreiben selbst, aber warum? Hope you guys können mir helfen und wenn Sie weitere Informationen benötigen, lassen Sie es mich wissen!
'Student' würde nicht zufällig einen Zeiger darin haben, der dynamischen Speicher zugeteilt wird, während er der Regel von drei nicht folgt, würde es? – chris
Welcher Typ ist 'name'? Was gibt 'a.getName()' zurück? (Setzen Sie einen Debug-Breakpoint direkt vor der 'cout'-Zeile und sehen Sie, was in 'name' und' regno' steht.) –
@DavidSchwartz ja ich hätte das leider tun sollen, name ist ein std :: string und a.getName() gibt zurück eine std.string zu –