(1)忽略前导的空格
setiosflags(ios::skipws)起"忽略前导的空格"的作用
(2)输出8进制和16进制数
hex 16进制数
oct 8进制
dec 十进制 ut << setw( 7 ) << setiosflags( ios::right ) << "somewords" << " of "
<< setw( 13 ) << setiosflags( ios::left ) << "somewords";
结果没有按我预定的想法输出。
我想输出的样式是:
Ace of Clubs
结果出来的是:
Ace of Clubs
也就是说,即使我后面改成了左对齐,还是以右对齐方式出来的。
我试过把right去掉,结果是可以变成左对齐的,全部变成左对齐了,只要有right, left就不好使了,而且不能设置部分左对齐,部分右对齐。
这是为什么?如何实现我想要的输入?
用setiosflags(ios::uppercase)控制16进制数大写输出
setiosflags(ios::lowercase)控制16进制数小写输出。
(3)设置填充字符
用setfill( c )控制符可以确定一个非空格的别的字符。
例 setfill(‘*’)
(4)左右对齐输出
setiosflags(ios::left)
setiosflags(ios::right)
问题一:
co
解答:
cout << setw( 7 ) << setiosflags( ios::right ) << "somewords" << " of "
<< setw( 13 ) << setiosflags( ios::left ) << "somewords";
==》
cout << setw( 7 ) << setiosflags( ios::right ) << "somewords" << " of "
<< resetiosflags( ios::right )<< setiosflags( ios::left )
<< setw( 13 ) << "somewords";
问题二:
#include <iostream.h>
#include <iomanip.h>
void main()
{
const double pi=3.14159;
double r=6.779,c,s;
c=2.0*pi*r;
s=pi*r*r;
cout<<"圆的周长(小数)为:"<<setiosflags(ios::fixed)<<c<<endl;
cout<<"圆的面积(小数)为:"<<setiosflags(ios::fixed)<<s<<endl;
cout<<"圆的周长(指数)为:"<<setiosflags(ios::scientific)<<c<<endl;
cout<<"圆的面积(指数)为:"<<s<<endl;
}
我把四条输出语句,前两句和后两句对换一下,就有不一样的输出结果。这是为什么呢?到底这两个控制符怎么用呢?
解答:
cout<<setiosflags(ios::fixed); //固定浮点显示
cout<<"圆的周长(小数)为:"<<c<<endl;
cout<<"圆的面积(小数)为:"<<s<<endl;
cout<<resetiosflags(ios::fixed); //清除格式化标志
cout<<setiosflags(ios::scientific); //指数表示
cout<<"圆的周长(指数)为:"<<c<<endl;
cout<<"圆的面积(指数)为:"<<s<<endl;
.......................................
setiosflags(long) 设置特定的格式标志位
resetiosflags(long) 请除特定的格式标志位