Ответ 1
Вам нужно включить
#include <string>
#include <iostream>
Почему я не могу cout
string
следующим образом:
string text ;
text = WordList[i].substr(0,20) ;
cout << "String is : " << text << endl ;
Когда я это сделаю, я получаю следующую ошибку:
Ошибка 2 ошибки C2679: двоичный '< <: оператор не найден, который принимает правый операнд типа 'std::string' (или нет приемлемого преобразования) c:\users\mollasadra\documents\visual studio 2008\projects\barnamec\barnamec\barnamec.cpp 67 barnamec **
Удивительно, что даже это не работает:
string text ;
text = "hello" ;
cout << "String is : " << text << endl ;
Вам нужно включить
#include <string>
#include <iostream>
Вам нужно как-то ссылаться на пространство имен cout std
. Например, вставьте
using std::cout;
using std::endl;
поверх определения вашей функции или файла.
В вашем коде есть несколько проблем:
WordList
не определен нигде. Вы должны определить его, прежде чем использовать его.#include <string>
, прежде чем использовать класс строк и iostream, прежде чем использовать cout
или endl
.string
, cout
и endl
живут в пространстве имен std
, поэтому вы не можете получить к ним доступ без префикса с помощью std::
, если вы не используете директиву using
, чтобы сначала перенести их в область.Выше ответы хорошие, но если вы не хотите добавлять строку include, вы можете использовать следующие
ostream& operator<<(ostream& os, string& msg)
{
os<<msg.c_str();
return os;
}
Вам не нужно явно указывать std::cout
или std::endl
.
Они оба включены в namespace std
. using namespace std
вместо использования оператора разрешения области ::
каждый раз сделать проще и чище.
#include<iostream>
#include<string>
using namespace std;
Если вы используете Linux-систему, вам нужно добавить
using namespace std;
Ниже заголовков
Если окна, то убедитесь, что вы правильно помещаете заголовки
#include<iostream.h>
#include<string.h>
Обратитесь к этому, чтобы он работал отлично.
#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;
}