2008-09-16 12 views
0

Ich versuche, ein stringstream-Objekt in VC++ (VStudio 2003) zu verwenden, aber ich erhalte einen Fehler, wenn ich den überladenen < <-Operator verwende, um einige Manipulatoren zu versuchen.stringstream manipulators & vstudio 2003

Ich versuche folgendes:

int SomeInt = 1; 
stringstream StrStream; 
StrStream << std::setw(2) << SomeInt; 

Dies kompiliert nicht (Fehler C2593: 'Operator < <' ist nicht eindeutig).
Unterstützt VStudio 2003 die Verwendung von Manipulatoren auf diese Weise?
Ich weiß, dass ich die Breite direkt auf das stringstream-Objekt z. StrStream.width (2);
Ich fragte mich, warum die üblichere Methode nicht funktioniert?

Antwort

1

Sind Sie sicher, dass Sie alle richtigen Header eingefügt haben? Die folgende compiliert für mich in VS2003:

#include <iostream> 
#include <sstream> 
#include <iomanip> 

int main() 
{ 
    int SomeInt = 1; 
    std::stringstream StrStream; 
    StrStream << std::setw(2) << SomeInt; 
    return 0; 
} 
+0

Ich war der Header fehlt. Danke vielmals! –

0

Sie wahrscheinlich nur vergessen iomanip zu schließen, aber ich kann nicht sicher sein, weil Sie nicht da Code für ein komplettes Programm enthalten sind.

Das komplette Programm funktioniert gut hier mit VS 2003:

#include <sstream> 
#include <iomanip> 

int main() 
{ 
    int SomeInt = 1; 
    std::stringstream StrStream; 
    StrStream << std::setw(2) << SomeInt; 
}