0

VC++ (VStudio 2003) で stringstream オブジェクトを使用しようとしていますが、オーバーロードされた << 演算子を使用していくつかのマニピュレータを設定しようとするとエラーが発生します。

私は次のことを試みています:

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

これはコンパイルされません (エラー C2593: 'operator <<' があいまいです)。
VStudio 2003 は、このようなマニピュレータの使用をサポートしていますか?
StrStream.width(2); のように、stringstream オブジェクトに幅を直接設定できることはわかっています。
より一般的な方法が機能しないのはなぜだろうと思っていました。

4

3 に答える 3

1

正しいヘッダーをすべて含めましたか? 以下はVS2003でコンパイルされます:

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

int main()
{
   int SomeInt = 1;
   std::stringstream StrStream;
   StrStream << std::setw(2) << SomeInt;
   return 0;
}
于 2008-09-16T06:08:56.017 に答える
1

このようなストリームの質問については、このリファレンス サイトが気に入っています。

/アラン

于 2008-09-16T06:11:33.637 に答える
0

おそらくiomanipを含めるのを忘れただけですが、完全なプログラムのコードが含まれていなかったため、確信が持てません。

この完全なプログラムは、VS2003を使用してここで正常に動作します。

#include <sstream>
#include <iomanip>

int main()
{
    int SomeInt = 1;
    std::stringstream StrStream;
    StrStream << std::setw(2) << SomeInt;
}
于 2008-09-16T06:21:58.590 に答える