C'è voluto un po', ma alla fine credo di aver capito il problema: Ridichiari sempre registro. In questo modo lo sovrascrivi perdendo le stringhe (non l'oggetto, ma il "valore" ) visto che sono allocate nell'heap al contrario degli int che sono nello stack.
Dichiarali una sola volta all'inizio del main (non dentro un ciclo) e basta.codice:main (){ ... while(getline (myfile, line)) { ... Register registro; // Lo dichiari ad ogni ciclo vettManipClass vettManipObject; } ... case 1 : { Register registro; // Lo ridichiari registro.print_student(cont); break; } case 2 : { cout << "Insert output file name: "; cin >> out_name; Register registro; // Lo ridichiari anche qua registro.print_file(out_name); break; } case 3 : { cout << "Insert name surname grade : "; cin >> new_name >> new_surname >> voto; Register registro; // e qui }
inoltre , non ti conviene tener traccia del numero degli studenti dentro Register?

Rispondi quotando
