2008-09-16 8 views
0

J'essaie d'utiliser un objet stringstream dans VC++ (VStudio 2003) mais j'obtiens une erreur lorsque j'utilise l'opérateur < < surchargé pour essayer de configurer certains manipulateurs.stringstream manipulators & vstudio 2003

Je suis en train de ce qui suit:

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

Ce ne compilera pas (C2593 d'erreur: 'opérateur < <' est ambigu).
VStudio 2003 prend-il en charge l'utilisation de manipulateurs de cette manière?
Je sais que je peux juste définir la largeur directement sur l'objet stringstream par exemple. StrStream.width (2);
Je me demandais pourquoi la méthode la plus habituelle ne fonctionne pas?

Répondre

1

Etes-vous sûr d'avoir inclus tous les bons en-têtes? Les compiles suivantes pour moi dans VS2003:

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

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

je l'en-tête manque. Merci beaucoup! –

1

I love this reference site pour les questions de flux comme celui-ci.

/Allan

0

Vous probablement oublié d'inclure iomanip, mais je ne peux pas être sûr parce que vous n'avez pas inclus le code pour un programme complet il.

Ce programme complet fonctionne très bien ici en utilisant VS 2003:

#include <sstream> 
#include <iomanip> 

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