《C++ primer plus》摘抄总结,方便查阅回忆
cout
输出
- 输出单字符:cout.put( ch );
- 输出字符串:cout.write( const char_type* s);
- 输出指定个数字符串:cout.write(const char_type* s, int cnt);
格式化输出
-
进制(设置后永久生效)
十进制:cout << dec << endl;
十六进制:cout << hex << endl;
八进制:cout << oct << endl; -
字段宽度(右对齐,设置后一次有效,填充字符默认空格)
int width(int i);
cout.width( i ); -
设置填充字符(设置后永久生效)
cout.fill( ‘*’ ); -
设置浮点数的显示精度(设置后永久生效)
cout.precision( int i); -
打印末尾的0和小数点
cout.setf(ios_base::showpoint); -
fmtflags 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(long, long);
解析:第二个setf( )原型接受两个参数,并返回以前的设置
格式常量
第二个参数
第一个参数 含 义
–
ios_base ::basefield
ios_base ::dec 使用基数10
ios_base ::oct 使用基数8
ios_base ::hex 使用基数16
–
ios_base ::floatfield
ios_base ::fixed 使用定点计数法
ios_base ::scientific 使用科学计数法
–
ios_base ::adjustfield
ios_base ::left 使用左对齐
ios_base ::right 使用右对齐
ios_base ::internal 符号或基数前缀左对齐,值右对齐
标准控制符(比setf格式化更友好的方法,可以直接输出)
示例:cout << left << fixed; //同时打开左对齐和定点选项
其他控制符
控制符 | 调用(与setf对应操作) |
---|---|
boolalpha | setf(ios_base::boolalpha) |
noboolalpha | unse |