Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] Problema chiamata funzioni in XCode

    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");
    }
    Ultima modifica di LeleFT; 09-06-2015 a 11:58 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Se l'input è numerico visto che usi %d devi usare 1 2 3 nella switch senza apici
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Grazie mille per la tempestività, problema risolto !!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.