J'ai fait une fonction que j'aimerais subdiviser pour pouvoir réutiliser certaines parties. J'ai un struct qui est au départ avec plusieurs éléments. Je veux faire un tableau et que si je passe d'une fonction à une autre l'information se cumule dans la bonne case. Donc je vais faire ça en plus simple... Disons que je dois rentrer une séquence d'ADN. Mon programme fait déjà tout bien, mais je veux séparer cette fonction de celle qui demande à l'utilisateur de rentrer la longueur. Je sais que je dois utiliser les pointeurs mais je n'y arrive pas. Qu'est-ce que je dois mettre dans l'entête de la fonction ? J'ai essayé ceci mais ça marche pas..
void saisirSequence (){
*unGene.sequence= " ";
//je vous épargne les détails sur le reste de la fonction
cout <<"Entrez la séquence" <<endl;
cin>> *unGene.sequence;
et ensuite quand je l'appelle dans le main qu'est-ce que je mets dans les parenthèses ?
Votre prototype est incorrect, il devrait être void saisirSequence (void){
et ensuite quand je l'appelle dans le main qu'est-ce que je mets dans les parenthèses ?
Ben rien, puisque la fonction ne prend pas de paramêtre, et remplit une variable gobale.
-- XAv In your pomp and all your glory you're a poorer man than me, as you lick the boots of death born out of fear. (Jethro Tull)
Cyrille Lefevre
Le 27/11/2010 03:01, aquatou a écrit :
Bonjour,
J'ai fait une fonction que j'aimerais subdiviser pour pouvoir réutili ser certaines parties. J'ai un struct qui est au départ avec plusieurs é léments. Je veux faire un tableau et que si je passe d'une fonction à une autre l'information se cumule dans la bonne case. Donc je vais faire ça en plus simple... Disons que je dois rentrer une séquence d'ADN. Mon programm e fait déjà tout bien, mais je veux séparer cette fonction de celle qui demande à l'utilisateur de rentrer la longueur. Je sais que je dois utiliser les pointeurs mais je n'y arrive pas. Qu'est-ce que je dois mettre dans l'entête de la fonction ? J'ai essayé ceci mais ça marche pas..
void saisirSequence (){ *unGene.sequence= " "; //je vous épargne les détails sur le reste de la fonction cout <<"Entrez la séquence" <<endl; cin>> *unGene.sequence;
et ensuite quand je l'appelle dans le main qu'est-ce que je mets dans l es parenthèses ?
dans le main() : struct nomstructure unGene; /* pas d'* */ saisirSequence(&unGene); /* note le & */
en C++, il doit être possible de faire qqc comme ça :
void saisirSequence (struct nomstructure &unGene) { /* note le & */ unGene... } /* note qu'il n'y a pas d'* */
dans le main() : struct nomstructure unGene; /* pas d'* */ saisirSequence(unGene); /* pas de & */
alternative du main() : allocation dans le tas plutôt que la pile si je ne me trompe... struct nomstructure *unGene; /* note l'* */ unGene = calloc(1, sizeof (struct nomstructure)); ...
PS : le c++ que j'ai pu apprendre remonte à trop loin pour que je puisse t'affirmer que ce que je viens de dire est valide ou non, mais c'est très certainement une piste...
toutefois, en C++, la logique serait d'avoir une classe avec un constructeur, un destructeur, des méthodes et plein de choses comme ça, non ?
http://www.cplusplus.com/doc/tutorial/
Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre.
Le 27/11/2010 03:01, aquatou a écrit :
Bonjour,
J'ai fait une fonction que j'aimerais subdiviser pour pouvoir réutili ser
certaines parties. J'ai un struct qui est au départ avec plusieurs é léments. Je
veux faire un tableau et que si je passe d'une fonction à une autre
l'information se cumule dans la bonne case. Donc je vais faire ça en plus
simple... Disons que je dois rentrer une séquence d'ADN. Mon programm e fait déjà
tout bien, mais je veux séparer cette fonction de celle qui demande à
l'utilisateur de rentrer la longueur. Je sais que je dois utiliser les pointeurs
mais je n'y arrive pas. Qu'est-ce que je dois mettre dans l'entête de la
fonction ? J'ai essayé ceci mais ça marche pas..
void saisirSequence (){
*unGene.sequence= " ";
//je vous épargne les
détails sur le reste de la fonction
cout <<"Entrez la séquence" <<endl;
cin>> *unGene.sequence;
et ensuite quand je l'appelle dans le main qu'est-ce que je mets dans l es
parenthèses ?
dans le main() :
struct nomstructure unGene; /* pas d'* */
saisirSequence(&unGene); /* note le & */
en C++, il doit être possible de faire qqc comme ça :
void saisirSequence (struct nomstructure &unGene) { /* note le & */
unGene... } /* note qu'il n'y a pas d'* */
dans le main() :
struct nomstructure unGene; /* pas d'* */
saisirSequence(unGene); /* pas de & */
alternative du main() :
allocation dans le tas plutôt que la pile si je ne me trompe...
struct nomstructure *unGene; /* note l'* */
unGene = calloc(1, sizeof (struct nomstructure));
...
PS : le c++ que j'ai pu apprendre remonte à trop loin pour que je
puisse t'affirmer que ce que je viens de dire est valide ou non,
mais c'est très certainement une piste...
toutefois, en C++, la logique serait d'avoir une classe avec un
constructeur, un destructeur, des méthodes et plein de choses
comme ça, non ?
http://www.cplusplus.com/doc/tutorial/
Cordialement,
Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%nospam@laposte.net.invalid
supprimer "%nospam% et ".invalid" pour me repondre.
J'ai fait une fonction que j'aimerais subdiviser pour pouvoir réutili ser certaines parties. J'ai un struct qui est au départ avec plusieurs é léments. Je veux faire un tableau et que si je passe d'une fonction à une autre l'information se cumule dans la bonne case. Donc je vais faire ça en plus simple... Disons que je dois rentrer une séquence d'ADN. Mon programm e fait déjà tout bien, mais je veux séparer cette fonction de celle qui demande à l'utilisateur de rentrer la longueur. Je sais que je dois utiliser les pointeurs mais je n'y arrive pas. Qu'est-ce que je dois mettre dans l'entête de la fonction ? J'ai essayé ceci mais ça marche pas..
void saisirSequence (){ *unGene.sequence= " "; //je vous épargne les détails sur le reste de la fonction cout <<"Entrez la séquence" <<endl; cin>> *unGene.sequence;
et ensuite quand je l'appelle dans le main qu'est-ce que je mets dans l es parenthèses ?
dans le main() : struct nomstructure unGene; /* pas d'* */ saisirSequence(&unGene); /* note le & */
en C++, il doit être possible de faire qqc comme ça :
void saisirSequence (struct nomstructure &unGene) { /* note le & */ unGene... } /* note qu'il n'y a pas d'* */
dans le main() : struct nomstructure unGene; /* pas d'* */ saisirSequence(unGene); /* pas de & */
alternative du main() : allocation dans le tas plutôt que la pile si je ne me trompe... struct nomstructure *unGene; /* note l'* */ unGene = calloc(1, sizeof (struct nomstructure)); ...
PS : le c++ que j'ai pu apprendre remonte à trop loin pour que je puisse t'affirmer que ce que je viens de dire est valide ou non, mais c'est très certainement une piste...
toutefois, en C++, la logique serait d'avoir une classe avec un constructeur, un destructeur, des méthodes et plein de choses comme ça, non ?
http://www.cplusplus.com/doc/tutorial/
Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre.