使用cout进行格式化输出(2)
2017-10-07 15:03
741 查看
setf()的用法
第一个原型:
fmtflags setf(fmtflags);fmtflags是bitmask类型的typedef名。
第二个原型
fmtflags setf(fmtflags, fmtflags); 接受两个参数并返回以前的设置
关闭开关可以用unsetf()消除,原型如下:
void unsetf(fmtflags mask);
cout.setf(ios_base::showpoint); //显示末尾小数点
cout.unsetf(ios_base::showpoint); //不显示末尾小数点
第一个原型:
fmtflags setf(fmtflags);fmtflags是bitmask类型的typedef名。
常量 | 含义 |
ios_base::boolalpha | 输入和输出bool值,可以为true或false |
ios_base::showbase | 对于输出,使用C++基数前缀(0,0X) |
ios_base::showpoint | 显示末尾的小数点 |
ios_base::uppercase | 对于16进制输出,使用大写字母,E表示法 |
ios_base::showpos | 在正数前面加上+ |
#include<iostream> using std::cout; using std::ios_base; using std::endl; int main() { cout.setf(std::ios_base::boolalpha); bool T = true; cout << T << std::endl; cout << T << std::endl; //测试setf是否只对下一条语句有效 int temperature = 63; cout << temperature << std::endl; cout.setf(ios_base::showpos); cout << temperature << endl; double d = 3; cout << d << endl; cout.setf(ios_base::showpoint); cout << d << endl; cout << std::hex; cout << temperature << endl; cout.setf(ios_base::showbase); cout << temperature << endl; cout.setf(ios_base::uppercase); cout << temperature << endl; system("pause"); return 0; }仅当基数为10时才使用加号。C++将16进制和8进制都视为无符号
第二个原型
fmtflags setf(fmtflags, fmtflags); 接受两个参数并返回以前的设置
第二个参数 | 第一个参数 | 含义 |
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 | 符号或基数前缀左对齐,值右对齐 |
#include<iostream> using std::cout; using std::ios_base; using std::endl; int main() { cout.setf(ios_base::left, ios_base::adjustfield);//左对齐 cout.setf(ios_base::showpos);//在正数前面加+ cout.setf(ios_base::showpoint);//显示末尾小数点 cout.precision(3); ios_base::fmtflags old = cout.setf(ios_base::scientific, ios_base::floatfield);//科学计数法 cout << "Left Justification:" << endl; long n; for (n = 1; n <= 41; n += 10) { cout.width(4); cout << n << "|"; cout.width(12); cout << sqrt(double(n)) << "|" << endl; } cout.setf(ios_base::internal, ios_base::adjustfield); cout.setf(old, ios_base::floatfield); //恢复 cout << "Internal Justification:\n"; for (n = 1; n <= 41; n += 10) { cout.width(4); cout << n << "|"; cout.width(12); cout << sqrt(double(n)) << "|\n"; } cout.setf(ios_base::right, ios_base::adjustfield); cout.setf(ios_base::fixed, ios_base::floatfield); cout << "Right Justification:\n"; for (n = 1; n <= 41; n += 10) { cout.width(4); cout << n << "|"; cout.width(12); cout << sqrt(double(n)) << "|\n"; } system("pause"); return 0; }
关闭开关可以用unsetf()消除,原型如下:
void unsetf(fmtflags mask);
cout.setf(ios_base::showpoint); //显示末尾小数点
cout.unsetf(ios_base::showpoint); //不显示末尾小数点
相关文章推荐
- 使用cout来进行格式化输出
- 使用cout进行格式化输出(1)
- 如何在C++中使用cout进行高级的格式化输出操作
- [学习笔记][C++Primer Plus]使用cout格式化输出字符串
- 使用cout格式化输出字符串 (转)
- Python中使用pprint函数进行格式化输出的教程
- 使用cout进行输出
- 使用cout格式化输出字符串
- 使用cout格式化输出字符串
- JAVA 使用PRINTF或FORMAT 进行格式化输出
- CPP-如何使用cout格式化输出字符串
- [学习笔记][C++Primer Plus]使用cout格式化输出字符串,3q xuzhong
- 使用cout格式化输出字符串
- [c++ primer plus]使用cout格式化输出
- 使用cout格式化输出字符串
- 使用cout格式化输出字符串
- 使用cout进行格式化
- 使用cout格式化输出字符串
- QT中进行debug输出和使用cout cin等的问题
- QT中进行debug输出和使用cout cin等的问题