Pregunta

Estoy intentando usar un objeto stringstream en VC++ (VStudio 2003) pero recibo un error cuando uso el operador << sobrecargado para intentar configurar algunos manipuladores.

Estoy intentando lo siguiente:

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

Esto no se compilará (error C2593:'operador <<' es ambiguo).
¿VStudio 2003 admite el uso de manipuladores de esta manera?
Sé que puedo establecer el ancho directamente en el objeto stringstream, por ejemplo.StrStream.ancho(2);
Me preguntaba por qué el método más habitual no funciona.

¿Fue útil?

Solución

¿Está seguro de que incluyó todos los encabezados correctos?Lo siguiente se compila para mí en VS2003:

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

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

Otros consejos

Me encanta esto sitio de referencia para transmitir preguntas como esta.

/Alano

Probablemente olvidó incluir iomanip, pero no puedo estar seguro porque no incluyó código para un programa completo allí.

Este programa completo funciona bien aquí usando VS 2003:

#include <sstream>
#include <iomanip>

int main()
{
    int SomeInt = 1;
    std::stringstream StrStream;
    StrStream << std::setw(2) << SomeInt;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top