струнные манипуляторы & vstudio 2003 - PullRequest
0 голосов
/ 16 сентября 2008

Я пытаюсь использовать объект stringstream в VC ++ (VStudio 2003), но получаю ошибку, когда использую перегруженный оператор <<, чтобы попытаться установить некоторые манипуляторы. </p>

Я пытаюсь сделать следующее:

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

Это не скомпилируется (ошибка C2593: 'operator <<' является неоднозначным). <br> Поддерживает ли VStudio 2003 использование манипуляторов таким образом?
Я знаю, что могу просто установить ширину непосредственно на объекте stringstream, например. StrStream.width (2);
Мне было интересно, почему более обычный метод не работает?

Ответы [ 3 ]

1 голос
/ 16 сентября 2008

Мне нравится этот справочный сайт для потоковых вопросов, подобных этому.

/ Allan

1 голос
/ 16 сентября 2008

Вы уверены, что включили все правильные заголовки? Следующие компиляции для меня в VS2003:

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

int main()
{
   int SomeInt = 1;
   std::stringstream StrStream;
   StrStream << std::setw(2) << SomeInt;
   return 0;
}
0 голосов
/ 16 сентября 2008

Возможно, вы просто забыли включить iomanip, но я не уверен, потому что вы не включили туда код для полной программы.

Эта полная программа отлично работает здесь, используя VS 2003:

#include <sstream>
#include <iomanip>

int main()
{
    int SomeInt = 1;
    std::stringstream StrStream;
    StrStream << std::setw(2) << SomeInt;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...