scusate sono stato sinora a cercare l'errore ma non ci sono riuscito
ho trovato qualcosa che non andava tipo la definizione del numero di elementi della struct..ma non va uguale..ecco l'ultimo che ho fatto
codice:
#include <stdio.h>
#include <stdlib.h>
#define n 10
/*
*
*/
int main() {
struct studenti {
int ordi;
char cogno[20];
int vot;
}studente[n];
int ordine;
char cognome[20];
int voto;
int i = 0;
FILE *cfPtr; /*cfPtr = punta al file ingresso.txt*/
/*fopen apre il file*/
if ((cfPtr = fopen("ingresso.txt", "w")) == NULL){
printf ("Il file non può essere aperto");
}
else{
printf ("Inserisci ordine, cognome, ed il voto : \n");
printf ("Inserisci EOF per terminare l'inserimento \n");
scanf ("%d%s%d", &ordine, cognome, &voto);
/*scrive nel file*/
while (!feof(stdin)){
fprintf (cfPtr, "%d %s %d\n", ordine, cognome, voto);
scanf ("%d%s%d", &ordine, cognome, &voto);
}
fclose(cfPtr);
}
/*fopen apre il file*/
if ((cfPtr = fopen("ingresso.txt", "r")) == NULL){
printf ("Il file non può essere aperto");
}
else{
printf ("%15s%15s%15s","Ordine","Cognome","Voto\n");
fscanf (cfPtr, "%d%s%d", &ordine, cognome, &voto);
studente[i].ordi = ordine;
strcpy(studente[i].cogno,cognome);
studente[i].vot = voto;
i++;
while (!feof(cfPtr)){
printf ("%15d%15s%14d\n", ordine, cognome, voto);
fscanf (cfPtr, "%d%s%d", &ordine, cognome, &voto);
studente[i].ordi = ordine;
strcpy(studente[i].cogno,cognome);
studente[i].vot = voto;
i++;
}
}
printf ("\nStampa ordinata\n");
printf ("%25s%25s%30s\n","ORDINE,"COGNOME","VOTO");
for (i = 0; i < n; i++){
printf ("%25s%25s%30d", studente[i].ordi, studente[i].cogno, studente[i].vot);
}
fclose(cfPtr);
system("PAUSE");
return 0;
}