Почему мы получаем ошибку сборки «ошибка C2065:« ostringstream »: необъявленный идентификатор» и как это исправить? - PullRequest
2 голосов
/ 24 марта 2012

Привет, я компилирую решение C ++ в VS2008.

 ostringstream      strout; 

Я получаю ошибку компиляции " ошибка C2065: 'ostringstream': необъявленный идентификатор ".

Мне кажется, я включил все необходимые заголовочные файлы.

Может ли кто-нибудь любезно сообщить мне, как исправить эту ошибку (какие все файлы заголовков включить)?

Также я получаю странную ошибку, такую ​​как "ошибка C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором 'strout'"в той же строке.

Тогда как я знаю, что я не пропустил ";" точка с запятой @ строка, в которую выдается ошибка.

Спасибо заранее.

Ответы [ 2 ]

8 голосов
/ 24 марта 2012

Вам необходимо

#include <sstream>

и указать имя std::ostringstream.

6 голосов
/ 24 марта 2012

Мы не можем точно сказать вам, что не так с вашим кодом, если вы не покажете его нам.

Но вы можете использовать следующее и пример того, как это сделать:

#include <iostream>
#include <sstream>

int main() {
    std::ostringstream oss;
    oss << "Hello";
    std::cout << oss.str() << '\n';
    return 0;
}

Наиболее вероятная причина в том, что вы не фактически включили все необходимые заголовочные файлы, поэтому он не распознает ostringstream.

И именно это отсутствие распознавания, вероятно, приводит к ошибке пропущенной точки с запятой.

...