2012-03-24 8 views
2

Hallo ich bin eine C++ Lösung in VS2008 compiligig.Warum erhalten wir den Build-Fehler "Fehler C2065: 'ostringstream': nicht deklarierte Kennung" & Wie behebt man das?

ostringstream  strout; 

Ich erhalte die Kompilierungsfehler "Fehler C2065: 'ostringstream': nicht deklarierter Bezeichner".

Ich glaube, ich habe alle notwendigen Header-Dateien enthalten.

Kann mir jemand bitte wissen, wie man diesen Fehler behebt (Was alle Header-Dateien enthalten)?

Auch bekomme ich einen seltsamen Fehler wie "Fehler C2146: Syntaxfehler: fehlende ';' vor der Kennung 'strout' "in der gleichen Zeile.

Wohingegen ich weiß, dass ich ";" Semikolon @ die Zeile, in der der Fehler geworfen wird.

Vielen Dank im Voraus.

+0

Sie müssen '' einfügen und entweder 'using namespace std;' hinzufügen oder den Namen explizit mit 'sed ::' (d. H. Mit 'std :: ostringstream') versehen. – dasblinkenlight

+0

Die Stringstreams sind in der Kopfzeile ''. –

Antwort

6

Wir können Ihnen nicht mit Sicherheit sagen, was mit Ihrem Code los ist, es sei denn, Sie zeigen ihn uns.

Aber Sie können die folgende und ein Beispiel verwenden, wie es geht:

#include <iostream> 
#include <sstream> 

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

Die wahrscheinlich Ursache ist, dass Sie haben nicht tatsächlich alle benötigten Header-Dateien enthalten, weshalb es würde ostringstream nicht erkennen.

Und es ist dieser Mangel an Anerkennung, die wahrscheinlich den fehlenden Semikolonfehler verursacht.

8

Sie müssen

#include <sstream> 

und qualifizieren den Namen std::ostringstream.

+0

Vielen Dank. Ich hatte auch verwendet, die einen diff Satz von Fehlern warf. Jetzt habe ich nicht das Suffix ".h" benutzt und es hat gut funktioniert. – codeLover

Verwandte Themen