salve, ho un problema con un programma.. in poche parole ho creato una funzione sfruttando anche il tipo struct.. però penso che abbia qualche problema con i puntatori.. perchè all'interno della funzione è tutto ok, ma i valori che dovrebbero acquisire le variabili, quando passo al main, vengono persi...
codice:
void lettura_voti(record dati, stringa s1, stringa s2, int*n){
register int i; int m;
FILE*f; FILE*r; FILE*t;
printf("\nInserire il nome del file in cui sono contenuti i voti dei giocatori(specificareanche il suo indirizzo se il file non e' collocato nella stessa cartella \ndell'exe): "); scanf("%s",s1);
f=fopen(s1,"r");
if (f==NULL) {
printf ("\nSi e' verificato un errore . . .\nFile inesistente, procedere con l'inserimento dei voti manuale . . .\n");
lettura_alternativa(dati,n); }
else{
fscanf(f,"%d",n); for(i=0;i<*n;i++) fscanf(f,"%f",&dati.gio[i]);
}
printf("\nInserire il nome del file in cui e' contenuto l'elenco dei nomi della formazioneschierata(specificare anche il suo indirizzo se il file non e' collocato nella \nstessa cartella dell'exe): ");
scanf("%s",s2);
r=fopen(s2,"r");
if (r==NULL) {
printf ("\nSi e' verificato un errore . . .\nFile inesistente, i nomi dei giocatori non saranno mostrati . . .\n");
t=fopen("file_errore.txt","r");
fscanf(t,"%d",&m);
for(i=0;i<m;i++) fscanf(t,"%s",dati.mia_rosa[i]); }
else {
fscanf(r,"%d",&m);
for(i=0;i<m;i++)
fscanf(r,"%s",dati.mia_rosa[i]); } }
questa postata è la funzione che mi legge da file i valori che mi servono.. però quando nel main richiamo un'altra funzione che si occupa della stampa, i valori sono sballati..
penso che centrano i puntatori perchè se provo a fare un printf dei valori appena acquisiti nella funzione suscritta, i valori stampati sono esatti...
help me, please!!
edit: ho dimenticato di scrivere il preambolo, che altrimenti non si capisce una mazza
codice:
#define M 12
#define G 50
typedef float voti[M];
typedef char giocatore[G];
typedef giocatore formazione[M];
typedef char stringa[G];
typedef struct { voti gio; formazione mia_rosa; } record;