AIuto con un problema di funzioni

di il
7 risposte

AIuto con un problema di funzioni

Ho bisogno di aiuto per un problema con uso di funzioni.
il mio esercizio mi chiede di lavorare su dei treni, una volta inserita la lista, ora dato il numero identificativo del treno devo saperlo cancellare.
io ho usato questo tipo di funzione. ma sapete dirmi perchè non parte?

int cancTren()
{int pos;
char r;
printf("\n\n Inserire il numero identificativo del Treno da cancellare:\n ");
scanf("%d", &tren.numero_identificativo);
/*mi rimando alla ricerca del treno*/
pos=cercTren()
if (pos== -1){
printf("\n Treno non presente nella lista di NORD3\n");
return 0;
}
else printf("Confermi la concellazione? (S/N)?");
scanf("%c", &r);
if (r=='S' || r=='s') {
eliTren(pos);
return; }
}
int eliTren(long pos){
strcpy(tren.numero_identificativo, ""); /* bbiamo copiato la stringa contenente il num identi e l'abbiamo svuotata */
fp=fopen("treno.dat", "r+");
fseek(fp,pos,0) ; /*muove il puntatore del mio file dall'inizio per quanti byte ha pos*/
fwrite(&tren, sizeof(treno),1, fp);
fclose(fp);
}

int cercTren (int *num) /*puntatore d'appoggio x il nostro num identificativo*/ {
int n;
long pos=0L;
fp=fopen("tren.dat", "r");
for (pos=0L; pos < 1000; pos++); /*controlla o almeno capisci perchè pos<1000*/
n=fread(&tren,sizeof(treno),1,fp); /* n=0 perchè ha letto tutto il file,
in tren vengono trasferiti i byte, sizeoff(treno) prende la dimensione in byte del vettore,
1 è lelemento del vettore, fp è il file da leggere*/
if (n==0){
fclose(fp);
pos=-1; /*pos=-1 vuol dire che non esiste*/
return(pos);}
else
if (strcmp(num,tren.numero_identificativo)==0);
pos=ftell(fp); /*mi restituisce la posizione del puntatore*/
fclose(fp);
return (pos) }

7 Risposte

Devi accedere o registrarti per scrivere nel forum
7 risposte