Question bete

[Résolu]
Signaler
Messages postés
23
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juin 2006
-
Messages postés
23
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juin 2006
-
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

Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
15
struct carte {
int valeur;
char couleur[20];
};
Messages postés
252
Date d'inscription
vendredi 10 juin 2005
Statut
Membre
Dernière intervention
5 septembre 2006
1
Non, C1.valeur

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

++
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
24
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;

++
Messages postés
23
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juin 2006

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
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
24
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
Messages postés
23
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juin 2006

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 !
Messages postés
23
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juin 2006

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...