Question bete

Résolu
blanccc Messages postés 23 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juin 2006 - 9 mai 2006 à 16:04
blanccc Messages postés 23 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juin 2006 - 9 mai 2006 à 16:39
bonjour tout le monde,

je suis pas du tout un expert en C et j'ai un truc à programmer pour mon stage dans ce langage et ça serait bien pratique si je pouvais faire l'équivalent d'un "record" en Ada. Pour ceux qui connaissent pas l'Ada le "record" c'est un principe super simple. Par exemple si on veut traiter un problème avec des jeux de cartes on peut faire comme ça :

type carte is record
valeur : integer;
couleur : string;
end record;

ainsi quand on a une variable C1 de type carte si on fait C1.valeur ça nous donne l'integer correspondant et si on fait C1.couleur ça nous rend la string correspondante.

Ma question est la suivante : comment faire en C pour construire un type comme le type 'carte' au dessus. Ci vous avez une réponse je suis vraiment preneur, ça serait vraiment pratique pour moi !

Merci d'avance. Cédric

8 réponses

cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 18
9 mai 2006 à 16:26
struct carte {
int valeur;
char couleur[20];
};
3
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
9 mai 2006 à 16:35
Non, C1.valeur

Si C1 est de type carte* (pointeur) alors oui : C1->valeur
3
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
9 mai 2006 à 16:36
Heu une ptit erreur dans mon premier post
c'est
typedef struct <strike>carte</strike>
{
int i;
char couleur [20];
} carte;

++
3
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
9 mai 2006 à 16:31
remarque apres quand tu veut te servir de la structure tu fais comme ca :
struct carte C1;
sinon tu peut faire
typedef struct carte
{
int i;
char couleur [20];
} carte;
et apres dans l'appel
carte c1;

++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blanccc Messages postés 23 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juin 2006
9 mai 2006 à 16:32
ok je vais voir si ça marche. Et pour appeler la valeur c'est C1->valeur c'est ça ? (si on considère que C1 est de type carte bien sur) !

Merci pour ton aide en tous cas

Cédric
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
9 mai 2006 à 16:34
Pour utiliser les membres de la structure c'est comme ca :
c1.valeur;

c1->valeur ca marche aussi mais seuelemnt si c1 est un pointeur de structure
0
blanccc Messages postés 23 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juin 2006
9 mai 2006 à 16:35
Laurent ? ça serait pas plutot

typedef struct{
... ;
... ;
} carte;

par hasard à la place de :

typedef struct carte{
... ;
... ;
} carte;

je sais pas trop chui pas un pro mais j'ai vu des trucs comme ça dans un exemple...

merci pour votre aide en tous cas les gars !
0
blanccc Messages postés 23 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juin 2006
9 mai 2006 à 16:39
Merci tout le monde !

je vous aurais bien mis des ptis smileys mais ça marche pas j'écris dans une fenetre "de base" lol ! Bonne continuation à tous, c'est cool de votre part...

Cédric

___________________________
Si tout seul on va plus vite,
Ensemble on va plus loin...
0
Rejoignez-nous