aggregate 'std:: stringstream out' имеет неполный тип и не может быть определен [C++] [закрыт]

Я новичок в c++ пожалуйста, помогите мне выяснить, что не так с этим

string c;
stringstream out; //aggregate 'std::stringstream out' has incomplete type and cannot be //defined
out << it->second;
out << end1;//'end1' was not declared in this scope
c = out.str();

3 ответов


кажется, вам не хватает include для stringstream. Кроме того, у вас есть опечатка

out << end1;

следует читать

out << endl;

l вместо 1.


ты:

#include <sstream>

кроме того, предпоследняя строка должна быть endl (NB: нижний регистр L) не end1 (номер один).

приведенный ниже код компилируется и корректно работает с G++ 4.2.1 на MacOS X

#include <iostream>
#include <sstream>

int main() {
        std::stringstream out;
        out << "foo" << std::endl;
        std::string c = out.str();
        std::cout << c;
}

пропуск #include <sstream> вызывает точно такую же ошибку в моей системе, как и ваша первая ошибка.


это нижний регистр L, а не 1:

out << endl;

Я думаю, что @Bo прав, (извините и спасибо) измените его на std::stringstream out;