Почему я не могу cout строку?


Почему я не могу coutstring такой:

string text ;
text = WordList[i].substr(0,20) ;
cout << "String is  : " << text << endl ;

когда я это делаю, я получаю следующую ошибку:

Ошибка 2 ошибка C2679: двоичный'

удивительно, что даже этого нет рабочий:

string text ;
text = "hello"  ;
cout << "String is  : " << text << endl ;
6 109

6 ответов:

вы должны включить

#include <string>
#include <iostream>

вам нужно ссылаться на пространство имен cout std как-то так. Например, вставить

using std::cout;
using std::endl;

поверх определения функции или файла.

есть несколько проблем с вашим кодом:

  1. WordList нигде не определено. Вы должны определить его, прежде чем использовать его.
  2. вы не можете просто написать код вне такой функции. Вам нужно поместить его в функцию.
  3. вам нужно #include <string> прежде чем вы сможете использовать класс String и библиотеки прежде чем использовать cout или endl.
  4. 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;

ниже заголовков

если windows, то убедитесь, что вы правильно разместили заголовки #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;
}