Reference pour arguments de fonction!

Messages postés
3
Date d'inscription
mercredi 10 juillet 2002
Statut
Membre
Dernière intervention
11 juillet 2002
- - Dernière réponse : cs_Kaid
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006
- 19 juil. 2002 à 11:39
Hello,
Voila mon code qui est tres simple :

# include
# include <cstdlib>

using namespace std;

// fonction pour entrer des lettres
void getchar(char& name[])
{
cout << "Entrer une chaine de moins de 15 caracteres" << endl;
cin >> name;
}

// fonction pour entrer des chiffres
int getcount(int& count)
{
cout << "Entrer une valeur numerique" << endl;
cin >> count;

if(count == 0)
exit(1);

return count;
}

// fonction qui affiche les char
void printchar()
{
cout << name;
}

// fonction pour afficher les chiffres
void printcount()
{
cout << count;
}

// programme principal
int main()

{
int count = 0;
char name[15] = {' '};

for(;;)
{
getcount(count);
getchar(name);
}

cout << endl
<< "Vous avez entrer : "
<< printcout()
<< endl
<< "Et : "
<< printcount() << endl;

return 0;

}

Je comprend pas pourquoi j'ai 7 error, et une du genre : warning C4002: too many actual parameters for macro 'getchar'. :(
Afficher la suite 

6 réponses

Messages postés
269
Date d'inscription
mercredi 24 avril 2002
Statut
Membre
Dernière intervention
9 juin 2003
0
Merci
deja, getchar est une fonction définie dans un en tete assez courant. C'est potentiellement source de risques.
sinon, tu veux pas faire un passage de tes arguments par pointeur ?
***raph***
Commenter la réponse de cs_kjus
Messages postés
3
Date d'inscription
mercredi 10 juillet 2002
Statut
Membre
Dernière intervention
11 juillet 2002
0
Merci
Ben enfaite c'etait l'exercice d'un livre, et pour le corriger de l'exo ils utilisent les reference.
Si j'utilise les references c'est plus facile pour modifier les variables hors des fonctions, n'est ce pas ?
Parce ke avec seulement "l'adresse" je ne pense pas que ca marcherait de facon efficace.
Commenter la réponse de CoxJoe
Messages postés
66
Date d'inscription
vendredi 3 mai 2002
Statut
Membre
Dernière intervention
11 juillet 2002
0
Merci
Hello,

j'ai testé ton prog et j'ai eu les memes erreurs que toi ... j'ai cherché un moment et j'ai trouvé une solution ... il faut que tu insères au début du prog la ligne suivante ...

#undef getchar

(ça décharge la macro getchar)

ça devrait ensuite mieux jouer.

Rem : j'ai trouvé quelques autres erreurs dans ton code :

1) name et count ne sont pas définis dans les fonctions "printchar" et "printcount".

2) printcount() ne renvoie pas de valeur donc tu ne peux pas faire :
cout << printcount();

Bye

Sven
Commenter la réponse de Dorgendubal
Messages postés
269
Date d'inscription
mercredi 24 avril 2002
Statut
Membre
Dernière intervention
9 juin 2003
0
Merci
et ca :for(;;)
c pas censé faire une boucle sans fin ?
***raph***
Commenter la réponse de cs_kjus
Messages postés
3
Date d'inscription
mercredi 10 juillet 2002
Statut
Membre
Dernière intervention
11 juillet 2002
0
Merci
Ah super!
Merci beaucoup Dorkgendubal et Kjus pour votre aident, maintenant je comprend mieux.

@+
Commenter la réponse de CoxJoe
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006
0
Merci
Les références, ce sont des pointeurs déguisés plus faciles à manipuler.

Au lieu de faire:

void fonc(int *i)
{
*i=50;
}

on fait:

void fonc(int &i)
{
i=50;
}
Commenter la réponse de cs_Kaid