В примере кода ниже
std::string result = exec( "dir" ) ;
cout<<result;
Я получаю следующую ошибку
error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string
I suspect there is a special method to print out an std::string.
Пожалуйста, помогите мне отладить это.
Кроме того, я включил заголовочные файлы iostream.h, fstream.h и stream.
Ответ 1 · рейтинг 3 · Sergey Kalinichenko
Я подозреваю, что вам нужно квалифицировать cout с std::
std::cout << result;
или добавьте using namespace::std в начало файла cpp.
Ответ 3 · рейтинг 2 · Ozzy
cout определен в <iostream>. Чтобы синтаксис << работал с std::strings, требуется <sstream>.
#include <iostream>
#include <sstream>
std::string result = "something";
std::cout << result << " and something else";
Ответ 4 · Tabrez Ahmed
Отвечаю на свой вопрос от имени @MrLister, так как он был неактивен.
Я должен был включить <iostream> и <fstream> без .h. Также после этого следовало ввести using namespace std;.
Ex:
#include <string>
#include <iostream>
#include <fstream>
#include <stdlib>
using namespace std;
Большое спасибо @MrLister.
И спасибо @dasblinkenlight. Его ответ немного улучшился.