Problème avec c++

L’auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour, je suis actuellement le très bon tutoriel de c++ sur le site. Cependant quand j’essaye de refaire un simple programme en sous-programmes, ça ne marche pas. Je suis au chapitre "Découpons du code - Les fichiers" et au sous- chapitre "Créons un lien". En fait quand je l’exécute ça me met que quoted est un identificateur introuvable, qu’il est n’a pas membre de 'std' et que namespace "std" n’a pas de membre quoted. Voici le code de mes fichiers ci-dessous :

Test.cpp

// On a besoin de iostream pour utiliser std::cout, std::quoted et std::endl. #include <iostream> // On inclut le fichier d’en-tête correspondant. #include "Test.h"

// Par contre, comme 'test.hpp' inclut déjà '<string>', on n’a pas besoin de l’inclure de nouveau ici, dans le fichier source.

// On définit la fonction ici. void afficher_message(std::string const & message) { std::cout « "J’ai reçu un message : " « std::quoted(message) « std::endl; }

'’' Test.h

#ifndef TEST_H #define TEST_H

#include <string>

void afficher_message(std::string const & message);

#endif '’' main.cpp

// Pour appeler la fonction, il faut connaître son prototype, donc on doit inclure le fichier d’en-tête correspondant. #include "Test.h"

int main() { // Ici, on va utiliser la fonction. afficher_message("Salut les lecteurs !"); return 0; }

+0 -0

Je ne suis pas assez avancé dans le cours de C++ mais déjà petite chose qui pourrait aider les autres personnes sur ce site c’est de mettre ton code comme ça :

Ton Code

Si tu ne sait pas comment faire, cite mon message pour voir comment il est fait

Édité par valerian.roura

+1 -0

Cette réponse a aidé l’auteur du sujet

Bonjour,

Oui penses à commenter ton code :

Test.cpp
```c++
#include <iostream>
#include "Test.h"

void afficher_message(std::string const & message) {
  std::cout << "J’ai reçu un message : " << std::quoted(message) << std::endl;
}

int main() {
  // Ici, on va utiliser la fonction.
  afficher_message("Salut les lecteurs !");
  return 0;
}
```

Test.h
```c++
#ifndef TEST_H
#define TEST_H
#include <string>

void afficher_message(std::string const & message);

#endif
```

Tu as oublié un import dans ton fichier Test.cpp pour utiliser quoted() :

#include <iomanip>

Ensuite pour les paramètres, tu peux simplifier :

void afficher_message(std::string message) {
  std::cout << "J’ai reçu un message : " << std::quoted(message) << std::endl;
}

Ne pas oublier de modifier la signature de fonction dans Test.h :

void afficher_message(std::string message);

Edit : j’enlève using namespace std;, quand on code petit script ça peut passer mais ça reste effectivement une mauvaise pratique.

Édité par Yarflam

Tant de choses, tant de vies, tant de possibilités.

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte