cs_Xs
Messages postés368Date d'inscriptionmercredi 14 novembre 2001StatutMembreDernière intervention 1 septembre 2008
-
15 mai 2002 à 19:01
cs_st1
Messages postés13Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention29 décembre 2002
-
22 juil. 2002 à 20:14
salut !!
je suis en train de faire un programme en relation avec mendeleiev.
il se trouve que j'ai fait mon prog comme ceci (avec un squellette similaire) :
#includes
class definitions
{
public :
char temp[255];
init();
}
definition::init()
{
/*Ici, il ya le probleme*/
}
definition def;
etc.....
mon prob est que dans la table de mendeleiev, il y a 109 atomes ou quelquechos comme ca...
bref, si je vuex pas me taper 654 lignes a ecrires, il me faut la class : l'utilité est que je fais des recheches par numero atomique, nom ou symbol..
jcecchi
Messages postés117Date d'inscriptionsamedi 12 janvier 2002StatutMembreDernière intervention14 janvier 20033 15 mai 2002 à 20:33
salut,
>>2 problemes ce posent : le strcpy ne veut pas
>>faire strcpy(temp[0],"hydrogene");
>>mais accepte uniquement :
>>strcpy(temp,"hydrogene");
normal, "hydrogene" est, bien sur, une chaine de caracteres et temp[0] est un seul caractère.
en effet char temp[255] ne correspond qu'a un seul mot de 255 caracteres.
>>comment faire en sorte, que strcpy accepte
>>(temp[0],"hydrogene");
pas moyen.
>>(ou une autre solution)
>>et comment mettre les 109 atomes dans un >>tableau(leur noms) ?
je te propose cela
typedef struct {
char cNom[30] ; //ou plus
char cSymbol[3];
int iNumero;
} ELEMENT;
class cMendeleiev {
private :
ELEMENT table[109];
public :
void InitTable();
... // autre methode pour acceder aux elements
};
cs_Xs
Messages postés368Date d'inscriptionmercredi 14 novembre 2001StatutMembreDernière intervention 1 septembre 2008 18 mai 2002 à 18:12
merci a toi jecchi pour ta methode qui me semble pro. mais je ne sais pas a quoi sert this et comme je ne veux pas recopier betement un code sans le comprendre.....
je vais essayer de le refaire et voir si je peux l'utilisé.
cs_tafiscobar
Messages postés16Date d'inscriptiondimanche 10 février 2002StatutMembreDernière intervention17 janvier 2004 18 mai 2002 à 19:40
bon voila xs, this est utilise ds la definition des methodes de la classe seulement.this est un pointeur sur l'objet de la classe, c'est tout, tu p ne pas l'utiliser.Sinon pour le reste, jcecchi t'a bien repondu, il n'ya pas moyen de mettre une chaine de caracteres ds un caractere, a moins de faire un cast et de perdre les autres caracteres qui suivent, ie que tu recopies juste le premier caractere de ta chaine.Voila,tu connais les classes, donc tu p t'en sortir pour le reste.
seul le C/C++ vaut la peine d'etre appris.
tafiscobar.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_st1
Messages postés13Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention29 décembre 2002 22 juil. 2002 à 20:14
Tu as juste fais une erreur dans la declaration de ton tableau, tu as definit un tableau a une dimension de 255 caracteres, tu aurais du utiliser pour ton probleme un tableau a deux dimensions, si ton tableua ne doit que contenir les noms,
voila la declaration char temp[654][255];
Pour initialise ton tableau en une fois tu peux faire
temp[654][255]={"hydrogene","helium",.....};
mais pour le faire dans une classe tu devras utiliser une allocation dynamique pour ton tableau