Lire une variable de type énuméré au clavier

Fermé
Yakurena - 27 sept. 2004 à 22:53
 Jolkdarr - 28 sept. 2004 à 21:55
Bonsoir,
Je voudrais savoir quelle est,en langage C,la syntaxe exacte de la commande pour saisir une variable d'un type énum au clavier.
De meme qu'on utilise "%d" pour lire un entier,"%f" pour un réel,"%s" pour une chaine de charactères,etc. , quelle est la lettre correspondant à une variable de type énum?
Merci d'avance.
A voir également:

3 réponses

Hello !

En C, un type énuméré est assimilé à un entier.
Avec printf, tu peux utiliser %d comme pour les entiers (attention au respect des bornes).

Tu peux aussi utiliser %s si la saisie fournit une chaîne comme dans l'exemple ci-dessous :

#include <stdio.h>
#include <string.h>

typedef enum couleur { bleu, blanc, rouge, noir } couleur;

int main()
{
	char Chaine[100];
	couleur Couleur = noir;

	scanf("%s", Chaine);
	if (!strcmp(Chaine, "bleu")) Couleur = bleu;
	if (!strcmp(Chaine, "blanc")) Couleur = blanc;
	if (!strcmp(Chaine, "rouge")) Couleur = rouge;
	if (!strcmp(Chaine, "noir")) Couleur = noir;
	printf("%d\n", Couleur);
}


Take care !
2
OK mais dans ton exemple tu ne lis pas directement au clavier la variable de type énuméré,tu passes par une chaine de caractères.Il est donc impossible de la lire directement?
(avec la syntaxe :
"typedef enum couleur ...
couleur Couleur;
scanf("%?",&Couleur); "
0
Hello !

À part des nombres ou des chaînes de caractères, je ne vois pas bien ce que tu pourrais entrer de plus.
Tu as peut-être un clavier avec des énumérés sur les touches. ;)

Take care !
0