C言語は2年程度の経験、C++を学習し始めたところです。
以下のようなプログラムで、123456という数字を入力したときに、
setw(3)を使って最初の3文字分(つまり、123)だけaに代入したいのですが、
うまくいかずに123456が入ってしまいます。
C言語だと、scanf("%3d",&a);でうまくいくのですが、
C++ではできないのでしょうか?
ちなみにaをstring型で定義しているときは出来ました。
そもそもsetw自体が(本によると)出力に使うマニピュレータだから、
入力で使用してはダメなのでしょうか?
#include <iostream>
#include <iomanip>
int main(void){
using namespace std;
int a;
cin >> setw(3) >> a;
cout << a;
return(0);
}
ビルド環境はwinXPで、microsoft visual C++ 2010 Expressです。
簡単な質問だと思いますが、よろしくお願いします。
