Oppure

Loading
08/02/14 11:31
Josh
Salve, avrei bisogno di un chiarimento : se ho una struttura con un tipo enumerazione "day" come campo :

typedef enum { MON, TUE, WED, THU, FRI, SAT, SUN } day;

typedef struct {
int dd;
int mm;
int yy;
day name;
} date;

Come faccio ad assegnare un valore al campo name ? Grazie.
aaa
08/02/14 12:30
dmr
date a;
a.name=SAT;
aaa
08/02/14 16:23
Josh
E se volessi inserire il valore tramite scanf ?
aaa
08/02/14 17:18
dmr
Inserire il valore direttamente con scanf non si può. Però per inserire il name potresti fare cosi:

date a;
char name[4];
printf("name:");
scanf("%s",name);
if(!strcmp(name,"MON"))
{
  a.name=MON; 
}
// così per tutti gli altri


In poche parole chiedi il giorno usando un'array di caratteri, poi tramite la funzione strcmp verifichi che tipo di giorno è, ed assegni il valore corretto ad a.name.
aaa
08/02/14 18:19
Josh
Grazie mille:k:
aaa
08/02/14 20:47
tuttodiMC
Io però sapevo che per dare il valore dell'enumerazione ad una variabile dovevi ripetere il nome dell'enumerazione seguito da un punto seguito dal valore.
aaa
09/02/14 8:08
dmr
Postato originariamente da tuttodiMC:
Io però sapevo che per dare il valore dell'enumerazione ad una variabile dovevi ripetere il nome dell'enumerazione seguito da un punto seguito dal valore.


Quello che hai detto va bene per struct e union. Per le enum metti direttamente il valore.
Ultima modifica effettuata da dmr 09/02/14 8:09
aaa