Por qué no puedo cout
string
como esta:
string text ; text = WordList[i].substr(0,20) ; cout << "String is : " << text << endl ;
Cuando hago esto, aparece el siguiente error:
Error 2 error C2679: binario ‘<<': no se encontró operador que tome un operando de la derecha del tipo 'std :: string' (o no hay una conversión aceptable) c: \ users \ mollasadra \ documents \ visual studio 2008 \ proyectos \ barnamec \ barnamec \ barnamec.cpp 67 barnamec **
Es sorprendente que incluso esto no funcione:
string text ; text = "hello" ; cout << "String is : " << text << endl ;
Debes incluir
#include #include
Necesitas hacer referencia al std
del espacio de nombres de Cout de alguna manera. Por ejemplo, insertar
using std::cout; using std::endl;
encima de la definición de su función, o el archivo.
Hay varios problemas con su código:
WordList
no está definido en ninguna parte. Debe definirlo antes de usarlo. #include
antes de poder usar la clase de cadena y iostream antes de usar cout
o endl
. string
, cout
y endl
viven en el std
nombres endl
, por lo que no puede acceder a ellos sin agregarles prefijo std::
menos que use la directiva using
para ponerlos primero en el scope. Las respuestas anteriores son buenas, pero si no desea agregar cadenas, puede usar las siguientes
ostream& operator<<(ostream& os, string& msg) { os<
No es necesario que haga referencia explícitamente a std::cout
o std::endl
.
Ambos están incluidos en el namespace std
. using namespace std
lugar de utilizar el operador de resolución de ámbito ::
cada vez que hace es más fácil y más limpio.
#include #include using namespace std;
Si está utilizando el sistema de Linux, entonces necesita agregar
using namespace std;
Debajo de los encabezados
Si tiene ventanas, asegúrese de colocar los encabezados correctamente #include
#include
Refiere esto funciona perfectamente.
#include #include int main () { std::string str="We think in generalities, but we live in details."; // (quoting Alfred N. Whitehead) std::string str2 = str.substr (3,5); // "think" std::size_t pos = str.find("live"); // position of "live" in str std::string str3 = str.substr (pos); // get from "live" to the end std::cout << str2 << ' ' << str3 << '\n'; return 0; }