一、格式控制

ios提供直接设置标志字的控制格式函数

iostream和iomanip库还提供了一批控制符简化I/O格式化操作

 状态标志            值           含义                   输入/输出
skipws 0X0001 跳过输入中的空白 I
left 0X0002 左对齐输出 O
right 0X0004 右对齐输出        O
internal 0X0008 在符号位和基指示符后填入字符    O
dec 0X0010 转换基制为十进制    I/O
oct 0X0020 转换基制为八进制 I/O
hex 0X0040 转换基制为十六进制     I/O
showbase 0X0080 在输出中显示基指示符 O
showpoint 0X0100 输出时显示小数点 O
uppercase 0X0200 十六进制输出时一律用大写字母 O
showpos 0X0400 正整数前加“+”号 O
scientific 0X0800 科学示数法显示浮点数 O
fixed 0X1000 定点形式显示浮点数 O
unitbuf 0X2000 输出操作后立即刷新流 O
stdio 0X4000 输出操作后刷新stdout 和 stdree O

设置标识字:

例1:

 //例10-4  设置输出宽度
#include <iostream.h>
void main()
{ char *s = "Hello";
cout.fill( '*' ) ; // 置填充符
cout.width( ) ; // 置输出宽度
cout.setf( ios :: left ) ; // 左对齐
cout << s << endl ;
cout.width( ) ; // 置输出宽度
cout.setf( ios :: right, ios :: left ) ; // 清除左对齐标志位,置右对齐
cout << s << endl ;
}

输出:

例二:不同基数形式的输入输出

 #include <iostream.h>
void main()
{ int a , b , c ;
cout << "please input a in decimal: " ;
cin.setf( ios :: dec , ios :: basefield ) ; cin >> a ; //十进制输入
cout << "please input b in hexadecimal: " ;
cin.setf( ios :: hex , ios :: basefield ) ; cin >> b ; //十六进制输入
cout << "please input c in octal: " ;
cin.setf( ios :: oct , ios :: basefield ) ; cin >> c ; //八进制输入
cout << "Output in decimal :\n" ;
cout.setf( ios :: dec, ios :: basefield ); //十进制输出
cout << "a = " << a << " b = " << b << " c = " << c << endl ;
cout.setf( ios :: hex , ios :: basefield ) ; //十六进制输出
cout << "Output in hexadecimal :\n" ;
cout << "a = " << a << " b = " << b << " c = " << c << endl ;
cout.setf( ios :: oct , ios :: basefield ) ; //八进制输出
cout << "Output in octal :\n" ;
cout << "a = " << a << " b = " << b << " c = " << c << endl ;
}

输出:

例三:格式化输出浮点数

 #include <iostream.h>
void main()
{ double x = 22.0/ ;
int i ;
cout << "output in fixed :\n" ;
cout.setf( ios::fixed | ios::showpos ) ; // 定点输出,显示 +
for( i=; i<=; i++ )
{ cout.precision( i ) ; cout << x << endl ; }
cout << "output in scientific :\n" ;
// 清除原有设置,科学示数法输出
cout.setf(ios::scientific, ios::fixed|ios::showpos ) ;
for( i=; i<=; i++ )
{ cout.precision(i) ; cout << x*1e5 << endl ; }
}

二、格式控制符

控制符是istream和ostream类定义了一批函数,作为重载插入运算符<<或提取运算符>>的右操作数控制I/O格式。

例1:

 // 整数的格式化输出
#include <iostream>
#include <iomanip>
using namespace std ;
void main()
{ const int k = ;
cout << setw() << setfill('#') << setiosflags(ios::right) << k <<endl ;
cout << setw() << setbase() << setfill('*')
<< resetiosflags(ios::right) << setiosflags(ios::left) << k << endl ;
}

输出:

C++: I/O流详解(二)——输入输出格式控制的更多相关文章

  1. Java io流详解二

    原文地址https://www.cnblogs.com/xll1025/p/6418766.html 一.IO流概述 概述: IO流简单来说就是Input和Output流,IO流主要是用来处理设备之间 ...

  2. Android View 的绘制流程之 Layout 和 Draw 过程详解 (二)

    View 的绘制系列文章: Android View 的绘制流程之 Measure 过程详解 (一) Android View 绘制流程之 DecorView 与 ViewRootImpl 在上一篇  ...

  3. 基于JavaSE阶段的IO流详解

    1.IO流基本概述 在Java语言中定义了许多针对不同的传输方式,最基本的就是输入输出流(俗称IO流),IO流是属于java.io包下的内容,在JavaSE阶段主要学下图所示的: 其中从图中可知,所有 ...

  4. 爬虫入门之urllib库详解(二)

    爬虫入门之urllib库详解(二) 1 urllib模块 urllib模块是一个运用于URL的包 urllib.request用于访问和读取URLS urllib.error包括了所有urllib.r ...

  5. StreamingContext详解,输入DStream和Reveiver详解

    StreamingContext详解,输入DStream和Reveiver详解 一.StreamingContext详解 1.1两种创建StreamingContext的方式 1.2SteamingC ...

  6. .NET DLL 保护措施详解(二)关于性能的测试

    先说结果: 加了缓存的结果与C#原生代码差异不大了 我对三种方式进行了测试: 第一种,每次调用均动态编译 第二种,缓存编译好的对象 第三种,直接调用原生C#代码 .net dll保护系列 ------ ...

  7. PopUpWindow使用详解(二)——进阶及答疑

      相关文章:1.<PopUpWindow使用详解(一)——基本使用>2.<PopUpWindow使用详解(二)——进阶及答疑> 上篇为大家基本讲述了有关PopupWindow ...

  8. Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)

    [Android布局学习系列]   1.Android 布局学习之——Layout(布局)详解一   2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)   3.And ...

  9. logback -- 配置详解 -- 二 -- <appender>

    附: logback.xml实例 logback -- 配置详解 -- 一 -- <configuration>及子节点 logback -- 配置详解 -- 二 -- <appen ...

  10. CSS布局之脱离文档流详解——浮动、绝对定位脱离文档流的区别

    1.代码 (1)示例代码1 <!DOCTYPE html> <html lang="zh"> <head> <meta charset=& ...

随机推荐

  1. java中获取各种上下文路径的方法小结

    一.获得都是当前运行文件在服务器上的绝对路径在servlet里用:this.getServletContext().getRealPath(); 在struts用:this.getServlet(). ...

  2. centos安装yum源

    网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错,将yum源设置为163yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到.具体设置方法如下 ...

  3. Hive的JDBC访问

    实现hive查询源码: String driverName = "org.apache.hive.jdbc.HiveDriver"; try { Class.forName(dri ...

  4. 简谈Tomcat调优

    一.Tomcat和apache的比较 共同点:apache和tomcat都是属于web服务器. 不同点:他们是两个不同的容器,承载的东西不一样,tomcat属于一种java应用的服务 器,只针对jav ...

  5. 2、配置Selenium RC

    1.相关Jar包:链接: https://pan.baidu.com/s/1YLp-_5t7heyzPg550BWTGg 密码: w7ne 2.启动Selenium的方法 (1)cmd命令进入sele ...

  6. Angular5学习笔记 - 创建组件(四)

    一.创建组件 ng generate component component-name #简写 ng g c component-name ng generate directive|pipe|ser ...

  7. taskkill /f /t /im processName

    /*@echo off */taskkill /f /t /im WINWORD.exetaskkill /f /t /im nginx.exetaskkill /f /t /im w3wp.exet ...

  8. Solaris10安装配置LDAP(iPlanet Directory Server )

    Solaris10安装光盘自带了iPlanet Directory Server安装包,系统管理员可以利用iPlanet Directory Server在Solaris系统创建一个LDAP Serv ...

  9. CSS——盒子模型

    一.盒子模型: 模型如下: 如图:盒子模型包括:margin.padding.border.content四部分. margin:外边距,透明,能够显示父级的背景颜色等.表示元素与元素之间的间隔或者说 ...

  10. 问题:C#控制台 停留;结果:c#控制台如何延时显示

    Thread.Sleep(毫秒数);//比如Thread.Sleep(2000)即为延时2秒需using System.Threading; 随笔5 - C#控制台窗口的显示与隐藏 1. 定义一个Co ...