Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Вывод std::string

Автор вопроса: Tabrez AhmedОтветов: 4

В примере кода ниже

    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.

  • Вы должны были включить <iostream> и <fstream> без h. Если это не поможет, покажите больше кода. У вас есть using namespace std? Mr Lister 19.05.2012
  • Вы включили #include <string>? Naveen 19.05.2012
  • @MrLister: Спасибо. вы решили это. Пожалуйста, опубликуйте это как ответ, чтобы другие использовали его ... спасибо. Tabrez Ahmed 19.05.2012
  • Спасибо вам всем. @MrLister точно указал на ошибку. Жду, когда он добавит ответ, чтобы изменить статус этого вопроса. Tabrez Ahmed 19.05.2012
  • В будущем, пожалуйста, предоставьте самую короткую полную программу, которую вы можете создать, которая демонстрирует проблему. Вы не можете ожидать, что люди будут отлаживать всю программу всего из двух строк кода, особенно если эти две строки не включают ошибку. См. sscce.org. Robᵩ 20.05.2012
  • @Robᵩ: На самом деле, публикуя вопрос, я просто заподозрил ошибку в этих двух строках. Я не знал, что ошибка была где-то еще, когда я публиковал вопрос. Tabrez Ahmed 20.05.2012

c++coutiostreamfstream

Ответы

Ответ 1 · рейтинг 3 · Sergey Kalinichenko

Я подозреваю, что вам нужно квалифицировать cout с std::

    std::cout << result;

или добавьте using namespace::std в начало файла cpp.

Ответ 2 · рейтинг 2 · Hakan Serce

Вам нужно включить <string>

Ответ 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. Его ответ немного улучшился.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы