Problème avec c++

Le problème exposé dans ce sujet a été résolu.

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; }

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.

+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