Premetto che sono alle prime armi con la programmazione, sto scrivendo un programma che dopo aver chiesto all'utente di inserire dei dati in una struct, deve visualizzare in output quello che e stato inserito e caricare il tutto su un file di testo; il programma funziona correttamente ma sul file di testo vengono visualizzati caratteri totalmente differenti;grazie in anticipo a chi risponderà. Di seguito allego il programma.
SOSTITUITO E FUNZIONANTE
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
struct studente{
int voto;
int matricola;
string nome;
string cognome;
};
void visualizza (struct studente x[], int lun){
for(int i=0; i<lun; i++){
cout<<" "<<x[i].voto;
cout<<" "<<x[i].matricola;
cout<<" "<<x[i].cognome;
cout<<" "<<x[i].nome;
}
}
int main(){
int i;
int numero_studenti;
cout<<" quanti studenti da inserire : "<<endl;
cin>>numero_studenti;
struct studente Studente[numero_studenti];
ofstream myfile("struct_studente_2", ios::out);
if(!myfile){
cout<<" errore scrittura file "<<endl;
return 1;
}
for(i=0; i<numero_studenti; i++){
cout<<"inserire nome "<<endl;
cin>>Studente[i].nome;
cout<<"inserire cognome "<<endl;
cin>>Studente[i].cognome;
cout<<"inserire voto :"<<endl;
cin>>Studente[i].voto;
cout<<" inserire matricola : "<<endl;
cin>>Studente[i].matricola;
}
for( i=0; i<numero_studenti; i++){
myfile<<" "<<Studente[i].nome<<" "<<Studente[i].cognome<<" "<<Studente[i].voto<<" "<<Studente[i].matricola<<endl;
}
myfile.close();
cout<<"scrittura completata"<<endl;
visualizza(Studente, numero_studenti);
}