C++输入输出格式

输入输出流中的函数(模板):

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    cout<<setiosflags(ios::left|ios::showpoint);  // 设左对齐,以一般实数方式显示
    cout.precision(5);       // 设置除小数点外有五位有效数字 
    cout<<123.456789<<endl;
    cout.width(10);          // 设置显示域宽10 
    cout.fill('*');          // 在显示区域空白处用*填充
    cout<<resetiosflags(ios::left);  // 清除状态左对齐
    cout<<setiosflags(ios::right);   // 设置右对齐
    cout<<123.456789<<endl;
    cout<<setiosflags(ios::left|ios::fixed);    // 设左对齐,以固定小数位显示
    cout.precision(3);    // 设置实数显示三位小数
    cout<<999.123456<<endl; 
    cout<<resetiosflags(ios::left|ios::fixed);  //清除状态左对齐和定点格式
    cout<<setiosflags(ios::left|ios::scientific);    //设置左对齐,以科学技术法显示 
    cout.precision(3);   //设置保留三位小数
    cout<<123.45678<<endl;
    return 0; 
}

测试输出结果:

123.46
****123.46
999.123
1.235e+02

其中 cout.setf 跟 setiosflags 一样,cout.precision 跟 setprecision 一样,cout.unsetf 跟 resetiosflags 一样。

setiosflags(ios::fixed) 固定的浮点显示 
setiosflags(ios::scientific) 指数表示 
setiosflags(ios::left) 左对齐 
setiosflags(ios::right) 右对齐 
setiosflags(ios::skipws 忽略前导空白 
setiosflags(ios::uppercase) 16进制数大写输出 
setiosflags(ios::lowercase) 16进制小写输出 
setiosflags(ios::showpoint) 强制显示小数点 
setiosflags(ios::showpos) 强制显示符号

cout.setf 常见的标志:

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

iostream 中定义的操作符:

操作符描述输入输出
boolalpha启用boolalpha标志
dec启用dec标志
endl输出换行标示,并清空缓冲区
ends输出空字符
fixed启用fixed标志
flush清空流
hex启用 hex 标志
internal启用 internal 标志
left启用 left 标志
noboolalpha关闭boolalpha 标志
noshowbase关闭showbase 标志
noshowpoint关闭showpoint 标志
noshowpos关闭showpos 标志
noskipws关闭skipws 标志
nounitbuf关闭unitbuf 标志
nouppercase关闭uppercase 标志
oct启用 oct 标志
right启用 right 标志
scientific启用 scientific 标志
showbase启用 showbase 标志
showpoint启用 showpoint 标志
showpos启用 showpos 标志
skipws启用 skipws 标志
unitbuf启用 unitbuf 标志
uppercase启用 uppercase 标志
ws跳过所有前导空白字符

iomanip 中定义的操作符:

操作符描述输入输出
resetiosflags(long f)关闭被指定为f的标志
setbase(int base)设置数值的基本数为base
setfill(int ch)设置填充字符为ch
setiosflags(long f)启用指定为f的标志
setprecision(int p)设置数值的精度(四舍五入)
setw(int w)设置域宽度为w

C++ 输入多个字符,中间用一个字符隔开。

好像 C++ 没有像 scanf 控制的那么精确,有个 cin.get() 是可以忽略掉一个字符的,但那个字符可以是任何字符,不限定是逗号。

比如:

cin>>a;cin.get();
cin>>b;cin.get();
cin>>c;

你输入 1, 2, 3 或者 1a2b3 都可以。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值