首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2.9 C++控制符

C++输入输出的控制符

读者学习C语言的过程中,应该遇到过这个问题,需要控制输出小数点位数,在C语言中是这样来控制的

代码语言:javascript
复制
//输出小数点后两位
int pi=3.1415;
printf("%3.2f",pi);//%m.nf中m是值输出数据的总宽度,n是小数点位数

同样在C++中在输入输出时有点特殊要求,比如要求输出实数是要保留两位小数,数据向左向右对齐,C++中提供了这样的控制符。

和C语言一样,如果要调用stio.h库函数以前的方法,需要在开头添加头文件,控制符的头文件是iomanip。

控制符控制输出格式

控制符

作用

dec

设置整数的基数为10

hex

设置整数的基数为16

oct

设置整数的基数为8

setbase(n)

设置整数的基数为n(n只能是16,10,8之一)

setfill(c)

设置填充字符c,c可以是字符常量或字符变量

setprecision(n)

设置实数的精度为n位。在以一般十进制小数形式输出时,n代表有效数字。在以fixed(固定小数位数)形式和scientific(指数)形式输出时,n为小数位数。

setw(n)

设置字段宽度为n位

setiosflags(ios::fixed)

设置浮点数以固定的小数位数显示

setiosflags(ios::scientific)

设置浮点数以科学计数法(即指数形式)显示

setiosflags(ios::left)

输出数据左对齐

setiosflags(ios::right)

输出数据右对齐

setiosflags(ios::shipws)

忽略前导的空格

setiosflags(ios::uppercase)

在以科学计数法输出E和十六进制输出字母X时,以大写表示

setiosflags(ios::showpos)

输出正数时,给出“+”号

resetiosflags

终止已设置的输出格式状态,在括号中应指定内容。

设置格式状态的格式标志

格式标志

作用

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和十六进制输出字母X时,以大写表示

ios::showpos

输出正数时,给出“+”号

ios::fixed

设置浮点数以固定的小数位数显示

ios::stdio

每次输出后清除 stdout,stderr

流对象的成员控制输出格式

流成员函数

作用

precision(n)

设置实数的精度为n位

setprecision(n)

设置实数的精度为n位

width(n)

设置字段宽度为n位

setw(n)

设置字段宽度为n位

fill(c)

设置填充字符c

setfill(c)

设置填充字符c

setf( )

设置输出格式状态,括号中应给出格式状态,内容与控制符setiosflags括号中内容相同。

setiosflags( )

设置输出格式状态,括号中应给出格式状态,内容与控制符setiosflags括号中内容相同。

ubsetf( )

终止已设置的输出格式状态

resetiosflags( )

终止已设置的输出格式状态

案例:正常输出双精度浮点变量pi的值3.1415926

代码语言:javascript
复制
cout<<pi;
#include<iostream> //头文件
#include<iomanip> //为了调用setprecision引入的头文件 
using namespace std;
int main()       //主函数 
{
  double pi=3.1415926; //定义变量 
  cout<<setprecision(7)<<pi<<endl; //输出语句
}

会输出

3.141593

需要注意的一点是在使用setprecision时编译系统会自动进行四舍五入。

下一篇
举报
领券