左对齐与右对齐的输出问题

#include
#include
using namespace std;

int main()
{
cout<<setiosflags(ios::right)
<<setw(5)<<"1"<<setw(5)<<"2"
<<setw(5)<<"3"<<endl;
cout<<setiosflags(ios::left)<<
setw(5)<<"1"<<setw(5)<<"2";
return 0;}
<<setw(5)<<"3"<<endl;}
输出结果为
1 2 3
1 2 3
为什么输出结果不是
(null4)1(null4)2(null4)3
1(null
4)2(null4)3(null4)

它已经是左右对齐了