C++语言基础(25)-C++格式化输出
一.使用控制符控制输出格式
#include <iostream>
#include <iomanip>//不要忘记包含此头文件
using namespace std;
int main()
{
int a;
cout<<"input a:";
cin>>a;
cout<<"dec:"<<dec<<a<<endl; //以十进制形式输出整数
cout<<"hex:"<<hex<<a<<endl; //以十六进制形式输出整数a
cout<<"oct:"<<setbase()<<a<<endl; //以八进制形式输出整数a
char *pt="China"; //pt指向字符串"China"
cout<<setw()<<pt<<endl; //指定域宽为,输出字符串
cout<<setfill('*')<<setw()<<pt<<endl; //指定域宽,输出字符串,空白处以'*'填充
double pi=22.0/7.0; //计算pi值
//按指数形式输出,8位小数
cout<<setiosflags(ios::scientific)<<setprecision();
cout<<"pi="<<pi<<endl; //输出pi值
cout<<"pi="<<setprecision()<<pi<<endl; //改为位小数
cout<<"pi="<<setiosflags(ios::fixed)<<pi<<endl; //改为小数形式输出
return ;
}
输出结果:
input a:34↙(输入a的值)
dec:34 (十进制形式)
hex:22 (十六进制形式)
oct:42 (八进制形式)
China (域宽为)
*****China (域宽为,空白处以'*'填充)
pi=3.14285714e+00 (指数形式输出,8位小数)
pi=3.1429e+00 (指数形式输出,4位小数)
pi=3.143 (小数形式输出,精度仍为)
二.使用流对象的成员函数控制输出
除了可以用控制符来控制输出格式外,还可以通过调用流对象cout中用于控制输出格式的成员函数来控制输出格式。用于控制输出格式的常用的成员函数,如:
流成员函数 | 与之作用相同的控制符 | 作用 |
---|---|---|
precision(n) | setprecision(n) | 设置实数的精度为n位 |
width(n) | setw(n) | 设置字段宽度为n位 |
fill(c) | setfill(c) | 设置填充宇符c |
setf() | setiosflags() | 设置输出格式状态,括号中应给出格式状态,内容与控制符setiosflags括号中的内容相同,如表13.5所示 |
unsetf() | resetioflags() | 终止已设置的输出格式状态,在括号中应指定内容 |
流成员函数setf和控制符setiosflags括号中的参数表示格式状态,它是通过格式标志来指定的。格式标志在类ios中被定义为枚举值。因此在引用这些格式标志时要在前面加上类名ios和域运算符“::”
格式标志 | 作用 |
---|---|
ios::left | 输出数据在本域宽范围内向左对齐 |
ios::right | 输出数据在本域宽范围内向右对齐 |
ios::internal | 数值的符号位在域宽内左对齐,数值右对齐,中间由填充字符填充 |
ios::dec | 设置整数的基数为10 |
ios::oct | 设置整数的基数为8 |
ios::hex | 设置整数的基数为16 |
ios::showbase | 强制输出整数的基数(八进制数以0打头,十六进制数以0x打头) |
ios::showpoint | 强制输出浮点数的小点和尾数0 |
ios::uppercase | 在以科学记数法格式E和以十六进制输出字母时以大写表示 |
ios::showpos | 对正数显示“+”号 |
ios::scientific | 浮点数以科学记数法格式输出 |
ios::fixed | 浮点数以定点格式(小数形式)输出 |
ios::unitbuf | 每次输出之后刷新所有的流 |
ios::stdio | 每次输出之后清除stdout, stderr |
#include <iostream> using namespace std;
int main()
{ int a = ;
cout.setf(ios::showbase); // 显示基数符号(0x或)
cout<<"dec:"<<a<<endl; // 默认以十进制形式输出
cout.unsetf(ios::dec); // 终止十进制格式设置 cout.setf(ios::hex); // 设置以十六进制形式输出
cout<<"hex:"<<a<<endl;
cout.unsetf(ios::hex); // 终止十六进制形式输出 cout.setf(ios::oct); // 设置以八进制形式输出
cout<<"oct:"<<a<<endl;
cout.unsetf(ios::oct); // 终止八进制形式输出 char *pt = "China";
cout.width(); // 指定域宽为10
cout<<pt<<endl; cout.width(); // 指定域宽为10
cout.fill('*'); // 设置空白处以*号填充
cout<<pt<<endl; double pi = 22.0/7.0; // 输出PI值
cout.setf(ios::scientific); // 设置以科学计数法形式输出
cout<<"pi=";
cout.width(); // 设置域宽为14
cout<<pi<<endl;
cout.unsetf(ios::scientific); // 终止科学计数法形式输出 cout.setf(ios::fixed); // 设置以定点形式输出
cout.width(); // 指定域宽为12
cout.setf(ios::showpos); // 正数输出+号
cout.setf(ios::internal); // 数符出现在左侧
cout.precision(); // 保留位小数
cout<<pi<<endl; return ;
}
运行结果:
dec:21(十进制形式)
hex:0x15 (十六进制形式,以x开头)
oct:025 (八进制形式,以开头)
China (域宽为)
*****China (域宽为,空白处以'*'填充)
pi=**3.142857e+00 (指数形式输出,域宽,默认位小数)
+***3.142857 (小数形式输出,精度为,最左侧输出数符“+”)
注意:
1.成员函数width(n)和控制符setw(n)只对其后的第一个输出项有效
2.对输出格式的控制,即可以使用控制符,也可以使用cout流有关的成员函数,二者的作用是相同的。控制符是在头文件iomanip中定义的,因此用控制符时,必须包含iomanip头文件。cout流的成员函数是在头文件iostream 中定义的,因此只需包含头文件iostream,不必包含iomanip。
C++语言基础(25)-C++格式化输出的更多相关文章
- 基础数据类型,格式化输出,以及for循环的使用
基础数据类型总览 int :数字类型,可以+-*/等等操作 str:字符串类型,存储少量的数据,+*int 切片等 bool :里面包含True,False这两种值,用来判断真假. list :列表 ...
- java基础---->Java的格式化输出
在JavaSe5中,推出了C语言中printf()风格的格式化输出.这不仅使得控制输出的代码更加简单,同时也给与Java开发者对于输出格式与排列更大的控制能力.今天,我们开始学习Java中的格式化输出 ...
- go语言之数据类型和格式化输出
1.数据类型 package main import ( "fmt" "reflect" ) func main() { //整形 var v1 int32 v ...
- Python基础一(格式化输出、流程控制)
(1)格式化输出(%% 第一个% 转译) # 格式化 输入 输出 name = input("Name:") age = input("Age:") job = ...
- C语言基础(9)-字符串格式化输入和输出
1.字符串在计算机内部的存储方式 字符串是内存中一段连续的char空间,以’\0’结尾 2.printf函数,putchar函数 putchar输出一个char printf是输出一个字符串 prin ...
- 基于visual Studio2013解决C语言竞赛题之0203格式化输出
题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> void main() { // print是输出函数,参数%s表示输 ...
- [C语言学习笔记三]格式化输出和输入
使用 printf 函数来输出,使用 scanf 函数来输入 在 printf 函数中使用变量,需要使用占位符代替. int 型一般存储整数,使用 %d 代替 long long int 型一般存储长 ...
- C语言基础(12)-输入和输出
1. int scanf(const char *format, ...) 说明:scanf用于通过控制台输入字符串. 注意: (1).通过scanf()函数输入的字符串,系统会自动在其后面补一个0, ...
- Python自动化--语言基础2--运算符、格式化输出、条件语句、循环语句、列表、元组
运算符包括:算术运算符.比较运算符.赋值运算符.逻辑运算符.成员运算符.身份运算符 算术运算符 % 取模(余数) // 取相除的整数部分 / (5/2=2.5) 比较运算符 == 等于 ! ...
随机推荐
- FIS常用功能之资源压缩
fis server start后 资源压缩,只需要使用命令,不需要添加任何配置 fis release --optimize 或: fis release -o 在浏览器访问按F12,观看压缩前后文 ...
- ASP.NET Core管道深度剖析
ASP.NET管道 以IIS 6.0为例,在工作进程w3wp.exe中,利用Aspnet_ispai.dll加载.NET运行时(如果.NET运行时尚未加载).IIS 6引入了应用程序池的概念,一个工作 ...
- JSON相关
- Dos网络查看命令
net use //ip/ipc$ " " /user:" " 建立IPC空链接 net use //ip/ipc$ "密码" /user: ...
- 项目部署问题:xftp无法连接服务器、Nginx403 Forbidden解决、nginx反向代理解决前端跨域问题
一.xftp无法连接服务器 在xftp中配置正确的ip,用户名和密码后,居然无法连接 解决方案:将协议里面的FTP换成SFTP,注意换成SFTP后端口就默认换成22,要还是原来的21就还是连不上的哈 ...
- iOS Programming - Views(视图 - 基本绘制,变换,平移,旋转,反转,倾斜)
1. Views A view (an object whose class is UIView or a subclass of UIView) knows how to draw itself i ...
- Linux 静态链接库和动态连接库
(0)文件夹 VMware 下安装Ubuntu的吐血经历 零基础学习Shell编程 Linux下的makefile的妙用 Linux调试神器 -- gdb 十分钟学会Python的基本类型 Linux ...
- 算法笔记_076:蓝桥杯练习 结点选择(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 有一棵 n 个节点的树,树上每个节点都有一个正整数权值.如果一个点被选择了,那么在树上和它相邻的点都不能被选择.求选出的点的权值和最大是多 ...
- UVA 10168 Summation of Four Primes(数论)
Summation of Four Primes Input: standard input Output: standard output Time Limit: 4 seconds Euler p ...
- Unity 开发游戏编写代码的技巧
在平时开发游戏过程中,遇到一些编写代码很繁琐的问题. 我发现我团队中每个人都会遇到,就算打写出来分享下经验. 条件断点 利用IDE提供的工具, 右键断点的时候 输入条件, 当条件达成的时候,断点才能命 ...