C++ Les fonctions

Résolu/Fermé
Bilow - 6 déc. 2009 à 18:22
 Bilow - 7 déc. 2009 à 22:22
Bonjour,

Je suis intermédiaire en C++, mais je me sent con ! Je ne maitrîse toujours pas la matière des fonctions !

Une âme sensible voudrait-elle bien m'expliquer comment on fait ?

Ps : pas besoin de return, juste une fonction qu'on appelle (par exemple) :

DireBonjour("thomas");

et que la console affiche :

Bonjour thomas !

Merci d'avance :)

8 réponses

Gl@dior Messages postés 327 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 24 février 2012 79
6 déc. 2009 à 20:00
#include <iostream>
using namespace std;

void afficher(void); // prototype de la fonction

int main()
{

     afficher(); // appel de la fonction

}

void afficher(void) // définition de la fonction
{
     cout << "Bonjour" << endl;
}

voilou :)
0
Merci gladior,

mais comment faire une fonction comme j'ai décrite ?

Merci d'avance :)
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
6 déc. 2009 à 20:39
.
0
Gl@dior Messages postés 327 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 24 février 2012 79
6 déc. 2009 à 21:21
et bien c'est ce que je t'ai fait ... Enfin il manque juste "thomas" après le bonjour dans le cout et c'est bon.
0

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

Posez votre question
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
7 déc. 2009 à 00:45
voici la fonction que tu désires :


(note : il faut un #include <string>)
son prototype est :
i
void DireBonjour(string);

tu la définis comme ceci :

void DireBonjour(string chaine) {
//code ...
}

et à la place de "chaine" tu peux mettre le nom de variable que tu souhaites. Le mieux serait quelquechose de parlant comme "nom".

ensuite c'est la même chose que le afficher() que Gl@dior propose, sauf que après le texte tu envoies la variable chaine.

Pour l'appeler dans le main tu peux faire par exemple DireBonjour("Thomas");
0
Bonjour,

Merci beaucoup pour vos réponses.

Avec ce code cela fonctionne parfaitement :


//------------------------------------------------
#include <cstdlib>
#include <iostream>
//#include <string.h>

using namespace std;

void DireBonjour(string);

int main(int argc, char *argv[])
{
cout << "Entrez votre nom :" << endl;
string nom; //Déclaration de 'nom'
getline(cin, nom); //Demande de 'nom'
DireBonjour(nom); //Dit bonjour à l'utilisateur
system("pause"); //Attend l'appui d'une touche (je sais il vaut mieux 'getch();' dans
//conio.h... )
return 0;
}

void DireBonjour(string nom) {
cout << endl << "Bonjour, " << nom << "." << endl;
}
//-------------------------------------------

Je n'ai pas inséré string.h, cela fonctionne tout de même (pourquoi ?).

Mais comment faire cette même fonction avec un char (char nom [50];) ?
Merci d'avance :)
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
7 déc. 2009 à 22:08
Je n'ai pas inséré string.h, cela fonctionne tout de même (pourquoi ?).

Pardon, j'ai fait une faute.

Je voulais dire chez moi : String au lieu de string !!!

std::String est déclaré dans <String>, c'est une classe du standard C++ .

string est juste un autre nom pour char * . C'est en C.

donc la fonction écrite fonctionne déjà pour les char[] (car c'est pas grand chose d'autre qu'un char*, un peu différent quand même mais presque pareil). Si tu fais :

char bla[50] = "Blip";
DireBonjour(bla);

ça fonctionne parfaitement.
0
Bonjour et merci Pacorabanix (encore une fois!),
Merci pour vos réponses...

Au revoir :)
0