c++输出(调整cout输出进制width()函数的使用)
引用c++primer plus 一书
调整cout输出数据的进制问题:
-
类是从ios类派生出来的,而后者是从ios_base类派生出来的。ios_base类储存了描述格式状态的信息。
-
十进制 十六进制 八进制 可以用dec,hex,oct控制符。
cout输出默认是十进制输。
下面的函数调用将cout对象的技术系统格式设置为十六进制:
hex(cout);
cout<<hex;
-// C/C++里面只能支持八、十、十六进制三种
数字型常量。
如果真的需要的话,那么只能靠std::bitset来完成,通过调用参数为std::string的构造函数就可以把二进制变成bitset,然后用bitset::to_ulong就可以了
调整字段宽度
可以使用width成员函数将长度不同的数字放到宽度相同的字段中,该方法的原型:
- int width(); 第一种格式返回字段的当前设置;
2.int width(int i); 第二种将字段宽度设置为i空格,并返回当前的字段宽度值。(只影响下一个接下来的显示的的一个项目)
cout<<"#";;
cout.width(12); //因为width()是成员函数,使用的时候必用对象来调用它(这里是cout)来调用。
cout<<"$"<<endl;
cout<<12<<"$"<<24<<"$"<<endl;
$ 12$24$
图片.png
c++永远不会截断数据,因此如果尝试在宽度为2的字段中打印一个7位的值,c++将增宽字段,以用来容纳数据
填充字符
在默认情况下,cout用空格填充字段中未被使用的部位,可以使用fill()成员函数来改变填充的字符。
cout.file('*');
设置浮点数的显示精度
浮点数精度的含义取决于输出模式。默认情况下,他指的是显示的总位数。精度指的是小数点后的位数。(c++d默认精度为6位,但末尾的0将不显示。如果想要显示末尾的0则需要使用setf(ios_base::showpoint)函数。)
cout.percison(int i);
使用情况和width的情况不同 和fill()函数类似,新的精度设置将一直有效,直到被重新设置。
网友评论