setiosflags与setw使用说明

1、setw  

setw默认右对齐,可以用来控制输出间隔

cout<<'s'<<setw(8)<<'a'<<endl;

setw只对紧跟其后的输出起作用,上面代码的运行结果应该是
 

s       a

 
中间7个空格,因为a占了1个空格
如果输出长度超过setw括号内规定的长度,则按原长度输出
setw默认填充空格,不过可以配合setfill实现自定义填充

cout<<'s'<<setfill('*')<<setw(8)<<'a'<<endl;

输出结果为
 

s*******a

 
虽然setw默认右对齐,不过也可以使用std::left实现左对齐

cout<<std::left<<'s'<<setfill('*')<<setw(8)<<'a'<<endl;

2、hex,oct,dec

hex是16进制
dec是10进制
oct是8进制
 
3、setiosflags
 

setiosflags 是包含在命名空间 iomanip 中的C++ 操作符,该操作符的作用是执行由有参数指定

cout<<setiosflags(ios::left);
的作用是实现左对齐
 

#include<iostream>
using namespace std;
#include<iomanip>
int main()
{
 int a=20,b=18,c=24; 
 cout<<"123456789012345678901234567890"<<"\n"; 
 cout<<dec<<setw(10)<<a<<setw(10)<<b<<setw(10)<<c<<endl;
 cout<<setiosflags(ios::left); 
 cout<<hex<<a<<setw(10)<<b<<setw(10)<<c<<endl;
 cout<<hex<<setw(10)<<a<<setw(10)<<b<<setw(10)<<c<<endl;
 cout<<oct<<setw(10)<<a<<setw(10)<<b<<setw(10)<<c<<endl; 
 cout<<resetiosflags(ios::left); 
 cout<<dec<<setw(10)<<a<<setw(10)<<b<<setw(10)<<c<<endl;
}

运行结果是
在这里插入图片描述

发布了37 篇原创文章 · 获赞 3 · 访问量 1186

猜你喜欢

转载自blog.csdn.net/qq_45721778/article/details/104481020