C++: I/O流详解(二)——输入输出格式控制
一、格式控制
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流详解(二)——输入输出格式控制的更多相关文章
- Java io流详解二
原文地址https://www.cnblogs.com/xll1025/p/6418766.html 一.IO流概述 概述: IO流简单来说就是Input和Output流,IO流主要是用来处理设备之间 ...
- Android View 的绘制流程之 Layout 和 Draw 过程详解 (二)
View 的绘制系列文章: Android View 的绘制流程之 Measure 过程详解 (一) Android View 绘制流程之 DecorView 与 ViewRootImpl 在上一篇 ...
- 基于JavaSE阶段的IO流详解
1.IO流基本概述 在Java语言中定义了许多针对不同的传输方式,最基本的就是输入输出流(俗称IO流),IO流是属于java.io包下的内容,在JavaSE阶段主要学下图所示的: 其中从图中可知,所有 ...
- 爬虫入门之urllib库详解(二)
爬虫入门之urllib库详解(二) 1 urllib模块 urllib模块是一个运用于URL的包 urllib.request用于访问和读取URLS urllib.error包括了所有urllib.r ...
- StreamingContext详解,输入DStream和Reveiver详解
StreamingContext详解,输入DStream和Reveiver详解 一.StreamingContext详解 1.1两种创建StreamingContext的方式 1.2SteamingC ...
- .NET DLL 保护措施详解(二)关于性能的测试
先说结果: 加了缓存的结果与C#原生代码差异不大了 我对三种方式进行了测试: 第一种,每次调用均动态编译 第二种,缓存编译好的对象 第三种,直接调用原生C#代码 .net dll保护系列 ------ ...
- PopUpWindow使用详解(二)——进阶及答疑
相关文章:1.<PopUpWindow使用详解(一)——基本使用>2.<PopUpWindow使用详解(二)——进阶及答疑> 上篇为大家基本讲述了有关PopupWindow ...
- Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)
[Android布局学习系列] 1.Android 布局学习之——Layout(布局)详解一 2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数) 3.And ...
- logback -- 配置详解 -- 二 -- <appender>
附: logback.xml实例 logback -- 配置详解 -- 一 -- <configuration>及子节点 logback -- 配置详解 -- 二 -- <appen ...
- CSS布局之脱离文档流详解——浮动、绝对定位脱离文档流的区别
1.代码 (1)示例代码1 <!DOCTYPE html> <html lang="zh"> <head> <meta charset=& ...
随机推荐
- Asp.net工作流workflow实战之给书签命名(四)
之前我们的书签名字是通过手动录入的方式,在实际开发中要在流程设计的时候定义好: namespace EazyBPMS.WorkFlow { public sealed class SetStepAct ...
- PD中设置外键约束名称生成规则
选择Database—>Edit Current DBMS选择Scripts->Objects->Reference->ConstName可以发现右侧的Value为: FK_% ...
- Less known Solaris features: svccfg editprop (ZT)
http://www.c0t0d0s0.org/archives/7675-Less-known-Solaris-features-svccfg-editprop.html Sometimes sma ...
- javascript——事件处理模型(DOM 和 IE)
javascript的事件处理模型分为 DOM事件处理模型和 IE事件处理模型. 一.DOM事件流模型 DOM事件流分为三个阶段:捕获阶段.目标阶段.冒泡阶段. 捕获阶段:自上而下,由document ...
- 网页弹出框ClientScript,ScriptManager
网页调用客户端弹出框 this.ClientScript.RegisterStartupScript(this.GetType(), "message", "<sc ...
- leetcode653
class Solution { public: bool findTarget(TreeNode* root, int k) { queue<TreeNode> Q; vector< ...
- matlab图片高清复制到visio
编辑→复制图窗→在visio中粘贴
- latex 小模板
\documentclass[11pt,a4paper,english]{article}\usepackage[T1]{fontenc}\usepackage[utf8]{inputenc}\use ...
- Android 数据库 OrmLite Failed to open database
04-01 16:49:32.720: E/SQLiteLog(1894): (14) cannot open file at line 30204 of [00bb9c9ce4]04-01 16:4 ...
- PHP同时连接多个数据库
PHP同时连接多个mysql数据库的具体实现 方法一: <?php $conn1 = mysql_connect("127.0.0.1", "root", ...