cout.setf(ios_base::fixed, ios_base::floatfield)什么含义?
//C++为标准输入输出定义了一些格式标志,可以通过flags(),setf(),unsetf()三个函数来控制
//C++中的cout.setf()函数
/**类似于C中的printf(),C++中通过cout实现格式输出,cout.setf()是通过设置格式来控制输出形式
setf()函数有两个原型,fmtflags 是 bitmask类型(一种用来存储各个位值的类型)的 typedef名**/
//fmtflags setf(fmtflage) //第一原型
//fmtflags setf(fmtflags,fmtflags) //第二原型
//(1) fmtflags setf(fmtflage)
//通过标志操作
/** 标识 功能
boolalpha 可以使用单词true和false进行输入/输出的布尔值
oct 8进制显示数值
dec 10进制显示数值
hex 16进制显示数值
left 输出左对齐
right 输出右对齐
scientific 科学计数法显示浮点数
fixed 常规计数法(与科学计数法相对应)显示浮点数
showbase 显示所有数值基数
showpoint 显示小数点与额外的零,即使不需要
showpos 非负数前显示正号“ + ”
skipws 从一个流进行读取时,跳过空白(space,tab,newline)
unitbuf 每次插入后,清空缓冲区
uppercase 以大写形式显示科学计数法中的e和16进制的x
internal 将填充字符回到符号与数值之间
**/
//形式一 标识(cout);
// cout << 输出 << endl;
#include <iostream>
using namespace std;
int main() {
showpos(cout);
cout << 255 << endl;
oct(cout);
cout << 0b101101 << endl;
hex(cout);
cout << 27 << endl;
dec(cout);
cout << 0xff << endl;
scientific(cout);
cout << 255.255 << endl;
fixed(cout);
cout << -1.25E+3 << endl;
return 0;
}
//形式二 cout.setf(ios_base::标识);
// cout << 输出 << endl;
#include <iostream>
using namespace std;
int main() {
cout.setf(ios_base::fixed);
cout << -1.25E+3 << endl;
return 0;
}
//通过操作符操作
//iostream中定义的操作符
/**操作符 描述 备注(无备注就只有输出)
boolalpha 启用boolalpha标识 输入、输出
noboolalpha 关闭boolalpha标识 输入、输出
oct 启用oct标识 输入、输出
dec 启用dec标识 输入、输出
hex 启用hex标识 输入、输出
left 启用left标识
right 启用right标识
fixed 启用fixed标识
scientific 启用scientific标识
showbase 启用showbase标识
noshowbase 关闭showbase标识
showpoint 启用showpoint标识
noshowpoint 关闭showpoint标识
showpos 启用showpos标识
noshowpos 关闭showpos标识
skipws 启用skipws标识 仅输入
noskipws 关闭skipws标识 仅输入
unitbuf 启用unitbuf标识
nounitbuf 关闭unitbuf标识
uppercase 关闭uppercase标识
nouppercase 关闭uppercase标识
internal 启用internal标识
endl 输出换行标识并清空缓冲区
ends 输出空字符
flush 清空流
ws 跳过所有前导空白字符 仅输入
**/
//iomanip中定义的操作符
/** setiosflags(long f) 启用指定为f的标识 输入、输出
resetiosflags(long f) 关闭指定为f的标识 输入、输出
setfill(int ch) 设置指定字符为ch
setbase(int base) 设置数值基本数为base
setprecision(int p) 设置数值的精度(四舍五入)
setw(int w) 设置域宽度为w
**/
//形式 cout << 标识 << 输出 << endl;
#include <iostream>
using namespace std;
int main() {
cout << showpos << 255 << "\n" << noshowpos << 255 << endl;
cout << dec << 0xff << endl;
cout << hex << 27 << endl;
cout << oct << 0b101101 << endl;
cout << scientific << 255.255 << endl;
cout << fixed << -1.25E+3 << endl;
return 0;
}
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
cout << setiosflags(ios_base::scientific);
cout << 255.255 << endl;
cout << resetiosflags(ios_base::scientific);
cout << 255.255 << endl;
cout << setprecision(4);
cout << 255.255 << endl;
}
//(2) fmtflags setf(fmtflags,fmtflags)
//第一个参数指出要设置哪些位,第二个参数指出要清除第一个参数中的哪些位
/**self(long long)参数
fmtflags mask参数二 fmtflags:flags参数一 含义
ios_base::oct 8进制
ios_base::basefield ios_base::dec 10进制
ios_base::hex 16进制
ios_base::fixed 一般计数法
ios_base::floatfield ios_base::scientific 科学计数法
ios_base::left 左对齐
ios_base::adjustfield ios_base::right 右对齐
ios_base::internal 符号或前缀左对齐,值右对齐
**/
cout.setf()
最新推荐文章于 2024-04-29 11:56:38 发布