C - Obtenir le type d'entrée Enum

Est-il possible de scanf un type de données défini?

#include 
enum numberByMonth {jan=1,feb,mar,apr,may,jun,jul,aug,sep,okt,nov,dec};
main(){
printf("\n");
printf("Get Number By Month (type first 3 letters): ");
enum numberByMonth stringy;
scanf("%u",stringy);
printf("Your month number is: %u",stringy);
}

Quelqu'un peut-il m'aider quel type de données je devrais rechercher? Je l'ai mis à% u parce que gcc m'a dit que c'était un entier non signé.

0
Pourquoi main() sans type?
ajouté l'auteur Kevin Dong, source
AAAAAH merci simonc, j'ai juste oublié l'esperluette. Merci.
ajouté l'auteur Mathias, source
Votre spécificateur de format est correct. Vous devez passer l'adresse de stringy dans scanf . c'est-à-dire scanf ("% u", & stringy)
ajouté l'auteur simonc, source
@simonc Vous devriez probablement poster ceci comme réponse.
ajouté l'auteur Étienne, source

1 Réponses

#include 
#include 
char* months[] = {"jan","feb","mar","apr","may","jun","jul","aug","sep","okt","nov","dec"};

int main()
{
    printf("\n");
    printf("Get Number By Month (type first 3 letters): ");
    char str[3];
    scanf("%s",str);
    int i;
    for(i=0; i<12; i++)
    {
        if(!strcmp(str,months[i]))
        {
            printf("Your month number is: %d",i+1);
        }
    }
    return 0;
}
0
ajouté
Alors, pourquoi ne pas lui accorder la réponse?
ajouté l'auteur Mawg, source
En fait, j'ai fait ce programme pour tester les enums, mais vous aviez raison, ça n'a pas marché comme prévu.
ajouté l'auteur Mathias, source