poner guitarra cuerdas como calibre afinador afinacion acustica acordes c++ string cout

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:

  1. WordList no está definido en ninguna parte. Debe definirlo antes de usarlo.
  2. No puedes simplemente escribir código fuera de una función como esta. Necesitas ponerlo en una función.
  3. Necesita #include <string> antes de poder usar la clase de cadena y iostream antes de usar cout o endl .
  4. 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 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; }