stringstream操纵器& vstudio 2003

时间:2008-09-16 05:59:39

标签: visual-studio stl

我正在尝试在VC ++(VStudio 2003)中使用stringstream对象,但是当我使用重载的<<时,我遇到错误操作员尝试设置一些操纵器。

我正在尝试以下方法:

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

这不会编译(错误C2593:'operator&lt;&lt;'是不明确的) VStudio 2003是否支持以这种方式使用操纵器?
我知道我可以直接在stringstream对象上设置宽度,例如StrStream.width(2);
我想知道为什么更常用的方法不起作用?

3 个答案:

答案 0 :(得分:1)

您确定包含所有正确的标题吗?以下为VS2003编译:

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

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

答案 1 :(得分:1)

对于像这样的流媒体问题,我喜欢这个reference site

/阿伦

答案 2 :(得分:0)

您可能只是忘了包含iomanip,但我无法确定,因为您没有包含完整程序的代码。

使用VS 2003,这个完整的程序可以正常工作:

#include <sstream>
#include <iomanip>

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