**建议先看完上一篇(必看:你不知道的c++输出小知识_Sans的头的博客-CSDN博客)
好的,废话很多 ...
走起
众所周知,在c++中,有时输出的数据会变成这样:
Price
Pen:*********1.58
Pencle:******1.21
Erasers:*****1.1
Notebook:***5.65
Schoolbag:**30
.
.
.
这数据格式咋么样?能逼死一个强迫症吧。(强迫症:!!!!!!)
所以,我们需要调整一下格式。
1.打印末尾的0和小数点
#includeusing namespace std; int main() { double pen,pencle,erasers,notebook,schoolbag; cin>>pen>>pencle>>erasers>>notebook>>schoolbag; cout.setf(ios_base::showpoint); cout<<"Pen:tt"< 运行效果:
咋么样,过瘾吧,这样就舒服多了。
当然,这其中有人可能会有疑问:为哈setf()成员函数ios_base后要写'::'
Besause:
首先,'::'是作用域运算符,
那么,你肯定猜到了————showpoint是ios_base类声明中定义的类级静态常量。类级意味着如果在成员函数定义的外面使用它,必须在前面加'::'(这玩意儿)
当然,setf()的威力还不止如此。
setf()函数有两个原型:
第一个:fmtflags setf(fmtflags);
fmtflags格式常量:
常量 含义 ios_base::boolalpha 输入和输出bool值,可以为true或者false ios_base::showbase 对于输出,使用c++基数前缀(0,0x) ios_base::showpoint 显示末尾的小数点 ios_base::uppercase 对于16进制输出,使用大写字母,E表示法 ios_base::showpos 在正数前面加上+ 第二个:fmtflags setf(fmtflags,fmtflags);
第二个参数1:
ios_base::basefield
第一个参数有三个:
1.ios_base::dec 使用基数10
2.ios_base::oct 使用基数8
3.ios_base::hex 使用基数16
第二个参数2:
ios_base::floatfield
第一个参数有二个:
1.ios_base::fixed 使用定点计数法2.ios_base::scientific 使用科学技术法
第二个参数3:
ios_base::adjustfield
第一个参数有三个:
1.ios_base::left 使用左对齐
2.ios_base::right 使用右对齐
3.ios_base::internal 符号或基数前缀左对齐,值右对齐
好了,这次真完结了。



