Pourquoi je ne peux pas cout
ssortingng
comme ceci:
ssortingng text ; text = WordList[i].substr(0,20) ; cout << "String is : " << text << endl ;
Lorsque je fais cela, j’obtiens l’erreur suivante:
Erreur 2 Erreur C2679: binary ‘<<': aucun opérateur trouvé prenant un opérande de droite de type 'std :: string' (ou il n'y a pas de conversion acceptable) c: \ users \ mollasadra \ documents \ visual studio 2008 \ projets \ barnamec \ barnamec \ barnamec.cpp 67 barnamec **
C’est incroyable, même cela ne fonctionne pas:
ssortingng text ; text = "hello" ; cout << "String is : " << text << endl ;
Vous devez inclure
#include #include
Vous devez faire référence à l’espace de noms du cout std
quelque sorte. Par exemple, insérer
using std::cout; using std::endl;
en haut de votre définition de fonction ou du fichier.
Il y a plusieurs problèmes avec votre code:
WordList
n’est défini nulle part. Vous devez le définir avant de l’utiliser. #include
avant de pouvoir utiliser la classe de chaîne et iostream avant d’utiliser cout
ou endl
. ssortingng
, cout
et endl
vivent dans l’espace de noms std
, vous ne pouvez donc pas y accéder sans les préfixer avec std::
moins que vous n’utilisiez d’abord la directive using
. Les réponses ci-dessus sont bonnes, mais si vous ne souhaitez pas append de chaîne, vous pouvez utiliser les éléments suivants.
ostream& operator<<(ostream& os, string& msg) { os<
Vous n’avez pas besoin de référencer explicitement std::cout
ou std::endl
.
Ils sont tous deux inclus dans l’ namespace std
. using namespace std
au lieu d’utiliser un opérateur de résolution de scope ::
chaque fois que c’est facile et plus propre.
#include #include using namespace std;
Si vous utilisez le système Linux, vous devez append
using namespace std;
En-têtes
Si windows s’assure alors que vous mettez correctement les en-têtes #include
#include
Référez-vous cela fonctionne parfaitement.
#include #include int main () { std::ssortingng str="We think in generalities, but we live in details."; // (quoting Alfred N. Whitehead) std::ssortingng str2 = str.substr (3,5); // "think" std::size_t pos = str.find("live"); // position of "live" in str std::ssortingng str3 = str.substr (pos); // get from "live" to the end std::cout << str2 << ' ' << str3 << '\n'; return 0; }