Question

J'essaie d'utiliser un objet stringstream dans VC ++ (VStudio 2003), mais j'obtiens une erreur lorsque j'utilise le message surchargé < < opérateur pour essayer de définir des manipulateurs.

J'essaie ce qui suit:

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

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

Était-ce utile?

La solution

Êtes-vous sûr d’avoir inclus tous les bons en-têtes? Les éléments suivants sont compilés 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;
}

Autres conseils

J'aime ce site de référence pour les questions de flux telles que celle-ci.

/ Allan

Vous avez probablement juste oublié d'inclure iomanip, mais je ne peux pas en être sûr car vous n'avez pas inclus de code pour un programme complet.

Ce programme complet fonctionne bien avec VS 2003:

#include <sstream>
#include <iomanip>

int main()
{
    int SomeInt = 1;
    std::stringstream StrStream;
    StrStream << std::setw(2) << SomeInt;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top