Reference pour arguments de fonction!

CoxJoe Messages postés 3 Date d'inscription mercredi 10 juillet 2002 Statut Membre Dernière intervention 11 juillet 2002 - 10 juil. 2002 à 17:02
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'. :(

6 réponses

cs_kjus Messages postés 269 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 9 juin 2003
11 juil. 2002 à 00:30
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***
0
CoxJoe Messages postés 3 Date d'inscription mercredi 10 juillet 2002 Statut Membre Dernière intervention 11 juillet 2002
11 juil. 2002 à 02:06
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.
0
Dorgendubal Messages postés 66 Date d'inscription vendredi 3 mai 2002 Statut Membre Dernière intervention 11 juillet 2002
11 juil. 2002 à 09:04
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
0
cs_kjus Messages postés 269 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 9 juin 2003
11 juil. 2002 à 11:34
et ca :for(;;)
c pas censé faire une boucle sans fin ?
***raph***
0

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

Posez votre question
CoxJoe Messages postés 3 Date d'inscription mercredi 10 juillet 2002 Statut Membre Dernière intervention 11 juillet 2002
11 juil. 2002 à 13:40
Ah super!
Merci beaucoup Dorkgendubal et Kjus pour votre aident, maintenant je comprend mieux.

@+
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
19 juil. 2002 à 11:39
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;
}
0
Rejoignez-nous