- 首页 > it技术 > >
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进行输入/输出的布尔值
oct8进制显示数值
dec10进制显示数值
hex16进制显示数值
left输出左对齐
right输出右对齐
scientific科学计数法显示浮点数
fixed常规计数法(与科学计数法相对应)显示浮点数
showbase显示所有数值基数
showpoint显示小数点与额外的零,即使不需要
showpos非负数前显示正号“ + ”
skipws从一个流进行读取时,跳过空白(space,tab,newline)
unitbuf每次插入后,清空缓冲区
uppercase以大写形式显示科学计数法中的e和16进制的x
internal将填充字符回到符号与数值之间
**///形式一标识(cout);
//cout << 输出 << endl;
#include
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
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
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
#include
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::oct8进制
ios_base::basefieldios_base::dec10进制
ios_base::hex16进制ios_base::fixed一般计数法
ios_base::floatfieldios_base::scientific科学计数法ios_base::left左对齐
ios_base::adjustfieldios_base::right右对齐
ios_base::internal符号或前缀左对齐,值右对齐**/
推荐阅读