Ошибка C2679: двоичный '<<': оператор не найден, который принимает правый операнд типа 'std::string' (или нет приемлемого преобразования)
Вот мой код, как я могу исправить эту ошибку?
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
string title = "THE WORLD OF PIRATES";
cout << title << endl;
cout << " Welcome to the world of pirates";
cin.get();
return 0;
}
Ошибка
binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)
Ответы
Ответ 1
Вы забыли #include <string>
используя std::string
, не включая заголовок, работает на некоторых компиляторах, которые косвенно импортируют части <string>
в свои <iostream>
или другие заголовки, но это не стандартно и на них не следует полагаться. Также они часто ломаются, когда вы пытаетесь вывести строку, поскольку они включали только часть реализации и пропускают часть, которая реализует operator<<
.