Funzione enum LINGUAGGIO C

di Anonimizzato18462 il
15 risposte
Salve a tutti , sto provando ad utilizzare la funzione enum , però non lavora correttamente. Vi spiego in breve tutto.

Sto realizzando un progetto ,e devo creare una libreria. Tramite struct ho creato una struttura in cui vanno inseriti titolo del libro , autore ,e genere. Il genere però , il progetto dice , che è di tipo enum, quindi andare a scrivere dentro il typedef alcuni generi letterari che l'utente leggerà su schermo e premerà il tasto corrispondente al genere letterario che desidera scegliere.

L'unica cosa è che io ho creato una funzione che ritorna un tipo int, e questo ritorno vorrei che lo convertisse nel genere letterario.


Esempio. L'utente digita 1 , che corrisponde al genere letteraio Horror. Vorrei che si leggesse Horror e non 1 , sotto la voce genere libro.


Esiste un formattatore di campo che converte da int a char , oppure devo eseguire uno switch e dire a cosa corrsiponde 1 ecc!?!

Parliamo di linguaggio C


Grazie

15 Risposte

  • Non esiste, puoi preparare un array di stringhe di char che contengono le varie descrizioni
  • Devi utilizzare uno switch che ha per ingresso il tipo di enum, e nei vari case fai un printf con il genere
  • Non serve lo switch, come avevo detto è più comodo un vettore di stringhe in cui usi il valore dell'enum come indice
  • L'uso di uno statment switch, essendo in linea di principio meno efficiente e soprattutto più labour-intensive, ha senso unicamente laddove i valori della enum non siano strettamente contigui: il che, generalmente, è sintomo di errore di progetto o impreparazione laddove la codifica sia totalmente arbitraria, e si verifica invece solo in casi particolari, come nella mappatura fault-tolerant di comandi di particolari protocolli e in generale nell'interazione low level con vari device.
  • Provato, verissimo. E' più chiaro e si evitano errori
  • Hai provato ... Cosa?
  • oregon ha scritto:


    Hai provato ... Cosa?
    ad usare l'array al posto dello switch
  • Della struct?
  • oregon ha scritto:


    Della struct?
    dovevo scrivere switch ho scritto struct, cmq si capiva
  • Beh veramente no... Comunque importante che capivi tu...
  • oregon ha scritto:


    Beh veramente no... Comunque importante che capivi tu...
    Permalosetto?
    Buon anno va
  • No... Sono solo preciso... Che vuoi... è un "difetto" di alcuni vecchi del forum...

    Buon anno e buono studio
  • oregon ha scritto:


    No... Sono solo preciso... Che vuoi... è un "difetto" di alcuni vecchi del forum...

    Buon anno e buono studio
    Grazie mille, buono studio anche a te
  • Sono trent'anni che studio ma c'è sempre bisogno...
Devi accedere o registrarti per scrivere nel forum
15 risposte