C++ 输出流的格式化
来源:互联网 发布:咸鱼淘宝下载app 编辑:程序博客网 时间:2024/05/12 15:44
转自: http://www.cnblogs.com/walfud/articles/2047096.html
#include "stdafx.h"#include <string>#include <iostream>#include <iomanip>#include <sstream>int _tmain(int argc, _TCHAR* argv[]){// 1. 原来的状态std::ostream::fmtflags oldFlags = std::cout.flags();// 保存原来的状态值std::cout.flags(oldFlags);// 恢复原先保存的状态值// 2. bool型输出为字符/数字std::cout <<"数字 : " << true << " / " << false << std::endl;// 以0/1的形式输出(保持原来方式)std::cout <<"数字 : " << std::noboolalpha << true << " / " << false << std::endl;// 以0/1的形式输出(显式设置)std::cout <<"字符 : " << std::boolalpha << true << " / " << false << std::endl;// 以true/false的形式输出// 3. 对整形值以不同进制输出; 对浮点型无效.int i = 255;std::cout << "八进制 : " << std::oct << i << std::endl;// 输出: 八进制 : 377std::cout << "十进制 : " << std::dec << i << std::endl;// 输出: 十进制 : 255std::cout << "十六进制 : " << std::hex << i << std::endl;// 输出: 十六进制 : ff// 3.1 设置进制的前面的字母, 例如十六进制是 0x;std::cout << std::showbase;std::cout << "八进制 : " << std::oct << i << std::endl;// 输出: 八进制 : 0377std::cout << "十进制 : " << std::dec << i << std::endl;// 输出: 十进制 : 255std::cout << "十六进制 : " << std::hex << i << std::endl;// 输出: 十六进制 : 0xffstd::cout << std::noshowbase;// 3.2 进制中的字母是大写std::cout << std::showbase << std::uppercase ;std::cout << "十六进制 : " << std::hex << i << std::endl;// 输出: 十六进制 : 0XFFstd::cout << std::nouppercase ;std::cout << "十六进制 : " << std::hex << i << std::endl;// 输出: 十六进制 : 0xffstd::cout << std::dec;// 恢复为十进制显示// 4. 浮点型的格式化输出// 4.1 显示前N个数字// 显示前4个数字, 默认值为6std::cout << std::cout.precision(4) << 12.345678 << std::endl;// 输出: 12.35 四色五入输出// 显示前10个数字std::cout << std::cout.precision(10) << 12.345 << std::endl;// 输出: 12.345 后面不会补0std::cout.precision();// 查询当前值// 4.2 小数点后面N位与科学计数法double d = 10 / 3.0;std::cout.precision(6);// 配合std::fixed和std::scientific时, 就是小数点后6位.std::cout << std::fixed << d << std::endl;// 3.333333 小数点后共6位std::cout << std::scientific << d << std::endl;// 3.333333e+000 : 小数点后共6位// 4.3 恢复回浮点型的格式初始设置std::cout.unsetf(std::ostream::floatfield);// 5. 小数点后面位数不足, 补零std::cout.precision(6);// 配合std::fixed和std::scientific时, 就是小数点后6位.std::cout << std::fixed << std::showpoint << 10.0 << std::endl; // 输出 : 10.000000 保留小数点后面6位数字, 不足的话补0std::cout << std::noshowpoint << std::endl;// Revert to default handling of decimal // 6. 设置左边填充(右对齐输出很有用)// 6.1 左边填充, 默认是空格, 大于设定的位的话, 就正常输出了std::cout.unsetf(std::ostream::floatfield);// 恢复一下std::cout << std::setw(10) << 12.3 << std::endl;// 输出: ______12.3 左边补空格std::cout << std::setw(10) << 12 << 3 << std::endl;// 输出: ________123 std::setw只对当次有效.std::cout << std::setw(3) << 12.345 << std::endl;// 输出的内容大于设定的位的话, 就正常输出了// 7. 对齐输出// 7.1 左对齐/右对齐std::cout << std::left;// 左对齐std::cout << std::setw(5) << 12 << std::setw(5) << 34 << std::endl;// 12___34___std::cout << std::right;// 右对齐(默认)std::cout << std::setw(5) << 12 << std::setw(5) << 34 << std::endl;// ___12___34std::cout << std::internal;// 负号就左对齐, 数值就右对齐std::cout << std::setw(5) << -12 << std::endl;// -__12// 7.2 对齐的填充std::cout << std::setfill('*');// 设置填充星号std::cout << std::left;// 左对齐std::cout << std::setw(5) << 12 << std::endl;// 12***std::cout << std::right;// 右对齐std::cout << std::setw(5) << 12 << std::endl;// ***12std::cout << std::internal;// 负号就左对齐, 数值就右对齐std::cout << std::setw(5) << -12 << std::endl;// -**12return 0;}
0 0
- 输出流的格式化
- C语言的各种格式化输出
- C语言的各种格式化输出
- C语言中常见的格式化输出
- C/C++的格式化输出(1)--printf
- C/C++的格式化输出(2)--cout
- C/C++的格式化输出(3)--iomanip
- C-printf的格式化输入/输出
- C语言的格式化输出函数printf
- C/C++的一些格式化输出
- C++ 输出流的格式化
- C++ 输出流的格式化
- C语言格式化输出
- c格式化输出
- C语言格式化输出
- c格式化输出
- 【转】c格式化输出
- Objective-C 格式化输出
- win7 iis7 配置如何让局域网内其它用户访问
- 如何在 Android 程序中禁止屏幕旋转和重启Activity
- Android程序:使用ToggleButton,来切换图片
- 转载 【人脸检测】Haar分类器原理2——AdaBoost级联分类器
- mongoDB安全
- C++ 输出流的格式化
- 网络编程练习-fcntl
- 九宫重排—题解
- Unique Paths--LeetCode
- [leetcode]Pascal's Triangle II (杨辉三角形求输出第k行的值)
- 为什么需要推荐系统
- such as, for example, e. g. , i. e. , etc. 和et al. 的用法
- hdu 1207 汉诺塔2(dp+经典汉诺塔模型)
- 2015.3.26希望通过博客督促自己学习!