c++ - guitarra - ¿Por qué no puedo tocar una cuerda?
cuerdas de guitarra (6)
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 <string>
#include <iostream>
Hay varios problemas con su código:
-
WordList
no está definido en ninguna parte. Debe definirlo antes de usarlo. - No puedes simplemente escribir código fuera de una función como esta. Necesitas ponerlo en una función.
- Necesita
#include <string>
antes de poder usar la clase de cadena y iostream antes de usarcout
oendl
. -
string
,cout
yendl
viven en elstd
nombresendl
, por lo que no puede acceder a ellos sin agregarles prefijostd::
menos que use la directivausing
para ponerlos primero en el alcance.
Las respuestas anteriores son buenas, pero si no desea agregar cadenas, puede usar las siguientes
ostream& operator<<(ostream& os, string& msg)
{
os<<msg.c_str();
return os;
}
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.
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<iostream>
#include<string>
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<iostream.h>
#include<string.h>
Refiere esto funciona perfectamente.
#include <iostream>
#include <string>
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;
}