C++输出流的格式控制

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

//他们都是inline 内联函数

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

如:cout<<setw(6)<<123<<endl;

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

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

如:cout<<setfill(‘#’)<<123<<endl;

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

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

如:cout<<setbase(8)<<255<<endl;

输出显示结果为377

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

#include <iostream.h>

#include <iomanip.h> //格式控制

void main()

{

double amount = 22.0/7;

cout <<amount <<endl; //(1)

cout <<setprecision(0) <<amount <<endl   //(2)

<<setprecision(1) <<amount <<endl     //(3)

<<setprecision(2) <<amount <<endl     //(4)

<<setprecision(3) <<amount <<endl     //(5)

<<setprecision(4) <<amount <<endl;    //(6)

cout <<setiosflags(ios::fixed);

cout <<setprecision(8) <<amount <<endl; //(7)

cout <<setiosflags(ios::scientific)<<amount<<endl; //(8)

cout <<setprecision(6);

}

第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()函数用来获取“读入指针”的当前位置(从文件首到当前位置的字节数)。

转!!!http://ghyan1208.blog.163.com/blog/static/1628666762011589311449/

时间: 2024-10-11 23:08:53

C++输出流的格式控制的相关文章

c++IO之预定义格式控制

在C语言里,我们可以通过函数printf和scanf来进行格式化控制.而在C++中仍然包含了前者,但还提供了以下两种格式控制的方法:(1)使用流成员函数进行格式控制;(2)使用预定义操作符进行格式控制.下面我来一一介绍: 1.流成员函数主要是指ios类(流基类)中的,分别有: (1).设置状态标志流成员函数setf 一般格式:long ios::setf(long flags),调用格式:流对象.setf(ios::状态标志) ios类的状态标志有: 因为状态标志在ios类中定义为枚举值,所以在

【c++】c++格式控制输出简单应用

// c++格式控制输出简单应用 // 九九乘法表对齐 #include <iostream> #include <iomanip> using namespace std; int main() { for (int i = 1; i < 10; i++) { for (int j = 1; j <= i; j++) { //cout << i << "*" << j << "="

html标签,格式控制标签,内容容器标签,超链接标签,图片标签,表格

打开DREAMWEAVER,新建HTML,如下图: body的属性: bgcolor 页面背景色 background  背景壁纸.图片 text  文字颜色 topmargin  上边距 leftmargin   左边距 rightmargin 右边距 bottommargin  下边距 body属性用法示例: 格式控制标签: <font color="" face="" size=""></font> 分别控制字体的颜

shell脚本编程(严格的终端格式控制,美丽的输出字体颜色)

#!/bin/bash # #下面是字体输出颜色及终端格式控制 #字体色30-37 echo -e "\033[30m黑色字\033[0m" echo -e "\033[31m红色字\033[0m" echo -e "\033[32m绿色字\033[0m" echo -e "\033[33m黄色字\033[0m" echo -e "\033[34m蓝色字\033[0m" echo -e "\033

python xlwt写excel格式控制 颜色、模式、编码、背景色

关于写excel的格式控制,比如颜色等等 1 import xlwt 2 from datetime import datetime 3 4 font0 = xlwt.Font() 5 font0.name = 'Times New Roman' 6 font0.colour_index = 2 7 font0.bold = True 8 9 style0 = xlwt.XFStyle() 10 style0.font = font0 11 12 style1 = xlwt.XFStyle()

HTML入门 一般标签 格式控制标签

font 的属性       <font>内容</font> 双标签            color 字体颜色       face 选择字体        size 字体大小 格式控制          <b></b>  字体加粗          <i></i>  倾斜         <u></u> 下划线 原文地址:https://www.cnblogs.com/wangxiao233/p/82056

无符号整型unsigned int、unsigned long、usigned long long、size_t比较和格式控制

位数比较 由于数据的长度和平台相关,所以基于 64 位系统比较. Windows Linux unsigned int 32 bits/4294967295 32 bits unsigned long 32 bits 64 bits/18446744073709551615 unsigned long long 64 bits 64 bits size_t 32 bits 64 bits 可以看到,size_t 和 unsigned long 比较同步.另外 ssize_t 和 size_t 的

文件重定向,getline()获取一样,屏幕输出流,格式控制符dec,oct,hex,精度控制setprecision(int num),设置填充,cout.width和file(字符),进制输入

 1.在window下的命令重定向输出到文件中 2.将内容输入到某个文件中的方式:命令<1.txt (使用1.txt中的命令) 3.读取文件中的名,然后将命令读取最后输出到文件中.命令<1.txt>2.txt   这一句的作用就是将执行的命令输入到2.txt中. 4.文件重定向案例1 #include <iostream> using namespace std; void main() { char str[30] = { 0 }; cin >> str;

java语言之输出数据的格式控制

public class TestFornat{ public static void main(String[] args){ int i=49; System.out.printf("%d\n",i);//以十进制的格式输出 49 System.out.printf("%x\n",i);//以十六进制的格式输出 31 System.out.printf("%X\n",i);//同上 31 System.out.printf("%#x