Buonasera a tutti,
sono uno studente al primo anno di Ingegneria alle prese con il linguaggio C.
Lavorando in ambiente Mac per programmare utilizzo XCode.
Provando a sviluppare un programmino che fa da simulazione per il mio esame di informatica, mi si presenta un errore in cui dal menù del main che funziona tramite una scelta switch, al momento del debug e della scelta, anzichè richiamare la funzione relativa alla scelta, mi rimanda al menù di scelta, come se bypassasse la funzione.
La funzione in questione è una semplicissima compilazione dei campi di una struttura, come posso risolvere questo problema?
Riporto di seguito parte del programma
(Il testo dell'esercizio mi richiede di creare un programma per la gestione del magazzino di un negozio di scarpe)
Grazie in anticipo per l'attenzione
codice:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct scarpe
{
int cod_prodotto;
char descrizione[30];
char marca[20];
int giacenza;
float prezzo;
}t_scarpe;
void memorizza_scarpe(t_scarpe v)
{
FILE *fscarpe;
fscarpe = fopen("scarpe.dat","w+");
if(fscarpe!=NULL)
{
printf("***INSERIMENTO SCARPE*** \n");
printf("\n Inserisci il codice del prodotto");
scanf("%d",&v.cod_prodotto);
printf("\n Inserisci la descrizione del prodotto \n");
scanf("%s",v.descrizione);
printf("\n Inserisci la marca del prodotto \n");
scanf("%s",v.marca);
printf("\n Inserisci la giacenza del prodotto \n");
scanf("%d",&v.giacenza);
printf("\n Inserisci il prezzo del prodotto \n");
scanf("%f",&v.prezzo);
fwrite(&v, sizeof(t_scarpe),1,fscarpe);
fclose(fscarpe);
}
else
printf("c'e' stato un errore nell'apertura del file");
}
int main()
{
t_scarpe scarpe;
int c;
do
{
printf("\n 1. Memorizza nuovo prodotto \n");
printf("\n 2. \n");
printf("\n 3. \n");
printf("\n 4. \n");
printf("\n 5. \n");
printf("\n 6. Esci \n");
scanf("%d",&c);
switch(c)
{
case '1':
memorizza_scarpe(scarpe);
break;
case '2':
break;
case '3':
break;
case '4':
break;
}
}while(c!=6);
system("pause");
}