我正在尝试在VC ++(VStudio 2003)中使用stringstream对象,但是当我使用重载的<<时,我遇到错误操作员尝试设置一些操纵器。
我正在尝试以下方法:
int SomeInt = 1;
stringstream StrStream;
StrStream << std::setw(2) << SomeInt;
这不会编译(错误C2593:'operator&lt;&lt;'是不明确的)
VStudio 2003是否支持以这种方式使用操纵器?
我知道我可以直接在stringstream对象上设置宽度,例如StrStream.width(2);
我想知道为什么更常用的方法不起作用?
答案 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;
}