Spesso mi salta l'istruzione gets();
mettendo per esempio:
puts("immetti testo:");
gets(testo);
mi salta l'istruzione gets() a volte risolvo facendo cosi:
puts("immetti testo:");
gets(testo);
gets(testo);
mettendone due in serie salta la prima ma prende la seconda il codice in questione è il seguente:
void nuovo_item(FILE *fptr){
struct hard a={0,"",0,0};
int posizione;
puts("scegli posizione: ");
scanf("%d",&posizione);
fseek(fptr,(posizione - 1) * sizeof(struct hard),SEEK_SET);
fread(&a,sizeof(struct hard),1,fptr);
if(a.pos != 0){
printf("Posizione gia occupata\n");
}
else{
printf("Inserisci Nome attrezzo: ");
gets(a.nome_att);
gets(a.nome_att);
printf("Inserisci quantità: ");
scanf("%d",&a.quant);
printf("Inserisci Prezzo: ");
scanf("%d",&a.costo);
a.pos = posizione;
printf("Hai inserito:%d) %s quantita:%d Costo:%d\n\n",a.pos,a.nome_att,a.quant,a.costo);
fseek(fptr,(posizione - 1) * sizeof(struct hard),SEEK_SET);
a.costo = a.costo * a.quant;
fwrite(&a,sizeof(struct hard),1,fptr);
}
}
che è una funzione che aggiunge la descrizione di un attrezzo ad un file