web-dev-qa-db-fra.com

erreur C2679: binaire '<<': aucun opérateur trouvé qui prend un opérande droit de type 'std :: string' (ou il n'y a pas de conversion acceptable)

Voici mon code, comment puis-je corriger cette erreur?

#include "stdafx.h"
#include <iostream>

using namespace std;

int main()
{
    string title = "THE WORLD OF PIRATES";
    cout << title << endl;
    cout << " Welcome to the world of pirates";

    cin.get();

    return 0;
}

L'erreur est

binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)
21
SpikeThea

Vous avez oublié de #include <string>

en utilisant std::string sans inclure son en-tête fonctionne sur certains compilateurs qui importent indirectement des parties de <string> dans leur <iostream> ou d'autres en-têtes, mais ce n'est pas standard et il ne faut pas s'y fier. De plus, ils se cassent souvent lorsque vous essayez de sortir une chaîne car ils ne comprenaient qu'une partie de l'implémentation et il manque la partie qui implémente operator<<.

52
user1942027