C++|cout.setf()

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符号或前缀左对齐,值右对齐**/

    推荐阅读