2008-09-16 31 views
0

我想在VC++(VStudio 2003)中使用stringstream對象,但當我使用超載的< <運算符來嘗試設置某些操縱器時,出現錯誤。stringstream操縱器&vstudio 2003

我嘗試以下操作:

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

這不會編譯(錯誤C2593: '運營商< <' 不明確)。
VStudio 2003是否支持以這種方式使用操縱器?
我知道我可以直接在stringstream對象上設置寬度,例如StrStream.width(2);
我想知道爲什麼更常用的方法不起作用?

回答

1

你確定你包含所有正確的標題?以下爲我在VS2003編譯:

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

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

我失蹤頭。非常感謝! – 2008-09-16 06:23:07

0

你可能只是忘了,包括了iomanip,而是因爲你沒有包括一個完整的程序代碼,有我不能肯定。

這個完整的程序工作正常,在這裏使用VS 2003:

#include <sstream> 
#include <iomanip> 

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