c++中数据格式化的I/O

本文介绍了C++中用于控制标准输入输出的格式标志,如通过flags(), setf(), unsetf()函数实现左对齐等效果。C++提供了如endl、hex、oct和dec等操纵符,便于程序员在输出时切换整型值的进制表示。" 111722125,10295005,使用Nginx和Docker实现前端多环境部署,"['前端开发', 'Docker', 'Nginx配置', '环境部署', 'JavaScript']
摘要由CSDN通过智能技术生成
#include<iostream>
#include<iomanip>


using namespace std;


int main(){
char bookname[100];
double price;
int counte;
cout << "请输入书名:" << endl;
cin >> bookname;
cout << "请输入单价:" << endl;
cin >> price;
cout << "请输入销售数量:" << endl;
cin >> counte;


cout << "使用状态标志和成员函数进行格式化输出:" << endl;
cout << "《" << bookname << "》 :";
cout.width(5);
cout.fill('*');
cout << price << "(单价)";
cout.setf(ios::scientific);
cout << price * counte << "销售额";


cout.setf(ios::showpos | ios::left);


cout << counte << "(销售数量)" << endl;


getchar();
getchar();


return 0;


}



C++ I/O 标志

C++为标准输入和输出定义了一些格式标志, 它可以通过flags()setf(), 和 unsetf() 三个函数来控制. 例如,

cout.setf(ios::left);

对所有指向cout的输出进行左对齐调整.

标志功能
boolalpha 可以使用单词"true"和"false"进行输入/输出的布尔值.
dec 用十进制格式显示后面的数值.
fixed 用正常的记数方法显示浮点数(与科学计数法相对应).
hex 用十六进制格式显示后面的数值.
internal 将填充字符回到符号和数值之间.
left 输出调整为左对齐.
oct 用八进制格式显示后面的数值.
right 输出调整为右对齐.
scientific 用科学记数法显示浮点数.
showbase 输出时显示所有数值的基数.
showpoint 显示小数点和额外的零,即使不需要.
showpos 在非负数值前面显示"+".
skipws 当从一个流进行读取时,跳过空白字符(spaces, tabs, newlines).
unitbuf 在每次插入以后,清空缓冲区.
uppercase 以大写的形式显示科学记数法中的"e"和十六进制格式的"x".

也可以通过使用下面的操作符,不直接操作标志。大多数的编程人员都都熟悉endl操作符,它给我们一个使用操作符的启示。例如:当我们设置dec标志时, 我们可以使用下面的命令:

cout << dec;
中定义的操作符
操作符 描述 输入 输出
boolalpha 启用boolalpha标志 X X
dec 启用dec标志 X X
endl 输出换行标示,并清空缓冲区   X
ends 输出空字符   X
fixed 启用fixed标志   X
flush 清空流   X
hex 启用 hex 标志 X X
internal 启用 internal 标志   X
left 启用 left 标志   X
noboolalpha 关闭boolalpha 标志 X X
noshowbase 关闭showbase 标志   X
noshowpoint 关闭showpoint 标志   X
noshowpos 关闭showpos 标志   X
noskipws 关闭skipws 标志 X  
nounitbuf 关闭unitbuf 标志   X
nouppercase 关闭uppercase 标志   X
oct 启用 oct 标志 X X
right 启用 right 标志   X
scientific 启用 scientific 标志   X
showbase 启用 showbase 标志   X
showpoint 启用 showpoint 标志   X
showpos 启用 showpos 标志   X
skipws 启用 skipws 标志 X  
unitbuf 启用 unitbuf 标志   X
uppercase 启用 uppercase 标志   X
ws 跳过所有前导空白字符 X  
在中定义的操作符
操作符描述输入输出
resetiosflags( long f ) 关闭被指定为f的标志 X X
setbase( int base ) 设置数值的基本数为base   X
setfill( int ch ) 设置填充字符为ch   X
setiosflags( long f ) 启用指定为f的标志 X X
setprecision( int p ) 设置数值的精度   X
setw( int w ) 设置域宽度为w   X

   

通过这些格式化操纵符就可以直接输出各种进制的形式。例如:

默认情况下,用十进制读写整型值。通过使用操纵符 hexoct 和 dec,程序员可以将表示进制改为八进制、十六进制或恢复十进制(浮点值的表示不受影响):


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值