文章转自:http://hi.baidu.com/rocketxyf/blog/item/2562473114dbad17eac4af5a.html

  1. inline SMANIP(long)     resetiosflags(long _l) { return SMANIP(long)(__resetiosflags, _l); }
  2. inline SMANIP(int)      setfill(int _m) {return SMANIP(int)(__setfill, _m); }
  3. inline SMANIP(long)     setiosflags(long _l) {return SMANIP(long)(__setiosflags, _l); }
  4. inline SMANIP(int)      setprecision(int _p) {return SMANIP(int)(__setprecision, _p); }
  5. inline SMANIP(int)      setw(int _w) { return SMANIP(int)(__setw, _w); }

//他们都是inline 内联函数

(1)setw(int n) 预设输出宽度     如:

  1. cout<<setw(6)<<123<<endl;

输出结果为“   123”,在123的前面会有3个空格,123右对齐。

(2)setfill(char c) 预设填充字符      如:

  1. cout<<setfill(‘#’)<<123<<endl;

输出显示结果为“###123”,123右对齐,在前面填充3个’#’ 。

(3)setbase(int n) 预设整数输出进制      如:

  1. cout<<setbase(8)<<255<<endl;

输出显示结果为377

(4)setprecision(int n) 用于控制输出流显示浮点数的精度,整数n代表显示的浮点数数字的个数。示例程序如下:

  1. #include <iostream.h>
  2. #include <iomanip.h> //格式控制
  3. void main()
  4. {
  5. double amount = 22.0/7;
  6. cout <<amount <<endl; //(1)
  7. cout <<setprecision(0) <<amount <<endl   //(2)
  8. <<setprecision(1) <<amount <<endl     //(3)
  9. <<setprecision(2) <<amount <<endl     //(4)
  10. <<setprecision(3) <<amount <<endl     //(5)
  11. <<setprecision(4) <<amount <<endl;    //(6)
  12. cout <<setiosflags(ios::fixed);
  13. cout <<setprecision(8) <<amount <<endl; //(7)
  14. cout <<setiosflags(ios::scientific)<<amount<<endl; //(8)
  15. cout <<setprecision(6);
  16. }

第1行输出数值之前没有设置有效位数,所以用流的有效位数默认设置值6:第2个输出设置了有效位数0,C++最小的有效位数为1,所以作为有效位数设置为1来看待:第3~6行输出按设置的有效位数输出。 第7行输出是与setiosflags(ios::fixed)合用。所以setprecision(8)设置的是小数点后面的位数,而非全部数字个数。第8行输出用setiosflags(ios::scientific)来表示指数表示的输出形式。其有效位数沿用上次的设置值8。在用指数形式输出时,setprecision(n)表示小数位数。 (可是这个指数形式的输出我用VC6没有运行出来)。

setw(int _w)讲解
<< setw(int _w) << 输出位宽
如<< setw(7) << 1000   输出结果为 "1000   "(紧跟三个空格)
而如<< setw(3) << 1000 位宽小于原来的数字的位宽 那么按照原来的格式输出"1000" 前后无空格

setfill() 讲解
setfill(int _m) 随setw(int _w)一起使用 意思是在set(int _w)设定后的空格填充指定的字符
注意setfill里边的参数是int _m 是个整数 所以 如果我们要用空格来填充*号的时候
要使用setfill('*')[字符] 而不是setfill(*)

C++中tellp()函数与tellg()函数
tellp()函数用来获取“输出指针”的当前位置(从文件首到当前位置的字节数);
tellg()函数用来获取“读入指针”的当前位置(从文件首到当前位置的字节数)。

转载于:https://blog.51cto.com/printlife/576913

C++输出流的格式控制相关推荐

  1. C++流操纵算子(格式控制)

    输入/输出的数据没有指定格式,它们都按缺省的格式输入/输出.然而,有时需要对数据格式进行控制.这时需利用ios类中定义的格式控制成员函数,通过调用它们来完成格式的设置. ios类的格式控制函数如下所示 ...

  2. c语言如何输出无限小数,printf的格式控制(C语言)

    printf的格式控制的完整格式: % - 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说明: ①%:表示格式说明的起始符号,不可缺少. ②-:有-表示左对齐输出,如省略表示右对齐输出. ...

  3. C++ I/O 流 格式控制(上)

    在学习C++这么久以来,虽然一直使用着输入输出流,但是对它们却并没有进行系统的了解和学习.在最近,将它们的一些基本用法进行了一次简单的归纳. 使用ios类的成员函数进行格式控制 格式状态字 C++可以 ...

  4. C++ IO 格式控制

    文章目录 1.流成员函数 2. 操纵符 3.自定义操纵符 参考文献 C 语言中,我们可以通过函数 printf() 和 scanf() 进行格式化控制,而在 C++ 中仍然可继续使用二者,但还提供了以 ...

  5. C++知识点16——使用C++标准库(IO流格式控制)

    1.IO流的格式控制 1.1 指定整数值的进制 void setdatabase() {cout<<20<<'.'<<1024<<endl;cout&l ...

  6. PAT甲级1061 Dating:[C++题解]字符串处理(C语言格式控制牛逼!)

    文章目录 题目分析 题目链接 题目分析 题意重述:四个字符串,前两个字符串是一组:求 日期和小时: 后两个字符串是一组:求分钟. 对于前两个字符串: 需要统计两次,位置相同并且是相同的字符. 第一个符 ...

  7. printf的格式控制的完整格式

    printf的格式控制的完整格式 printf的格式控制的完整格式: %  -  0  m.n  l或h  格式字符 下面对组成格式说明的各项加以说明: ①%:表示格式说明的起始符号,不可缺少. ②- ...

  8. C++ I/O流 格式控制(下)

    使用I/O操作符进行格式控制 定义在iostream头文件中不带参数的操纵符 操纵符 作用 endl 输出时换行并刷新流 ends 输出时在字符串后插入空字符(NULL)作为尾符 flush 刷新,把 ...

  9. csv文件 内容转义_保存csv文件时的生僻字处理和格式控制

    应用场景 Web应用中导入导出报表是一个非常常见的需求,而普通用户使用最多的表格文件都是用Excel保存的. 一般来说,对于数据量较小的导入导出,使用xls/xlsx文件和用户交互是最佳选择,即有相应 ...

最新文章

  1. Docker镜像使用
  2. rgb和yuv的区别
  3. linux rsync 增量同步备份文件
  4. Java项目实训报告
  5. 邮件实现详解(三)------邮件的组织结构
  6. java file 下载文件_java下载文件的几种方式
  7. cocos2d-x游戏实例(24)-简易动作游戏(2)
  8. 但行好事,莫问前程!
  9. 多媒体播放(windows音乐播放)
  10. C++STL-priority_queue
  11. 数学教授曲安京2016年毕业致辞:永远珍重那些美好的内蕴品质
  12. SLAM--DBow3
  13. OPERA固定价格学习
  14. 计算机c 逻辑符号,c语言基本符号
  15. Ubuntu系统下把视频转换成gif图片
  16. table表格内容互换
  17. 设备在升级界面文字或图像方向偏转问题修改方案(RK3399方案)
  18. 10-赵志勇机器学习-meanshift
  19. Netty | 开启 Linux 平台下的 Native
  20. Qt编写安防视频监控系统11-动态换肤

热门文章

  1. Linux之systemctl命令的使用
  2. ssh在dhcp自动获取地址的时候使用
  3. 查找所有的(字符相同但顺序不同) Find All Anagrams in a String
  4. 《精通Linux设备驱动程序开发》——1.5 Linux发行版
  5. linux正则表达有话说
  6. 背景属性的相关属性设置
  7. win+Ubuntu双系统重装win出现error:unknown filesystem grubrescuegt;
  8. TCP/IP之传输层(一)
  9. 如何通过AppDomain用特定的安全上下文加载外部程序集
  10. mysql装一次后再装_MySQL再安装