std :: ios_base :: flags
作用:获取/设置格式标志
// modify flags
#include <iostream> // std::cout, std::ios
int main () {
std::cout.flags ( std::ios::right | std::ios::hex | std::ios::showbase );
std::cout.width (10);
std::cout << 100 << '\n';
return 0;
}
std :: ios_base :: setf、std::ios_base::unsetf
(1) setf:设置特定的格式标志
(2) unsetf:清除特定格式的标志
// modifying flags with setf/unsetf
#include <iostream> // std::cout, std::ios
int main () {
std::cout.setf ( std::ios::hex, std::ios::basefield ); // set hex as the basefield
std::cout.setf ( std::ios::showbase ); // activate showbase
std::cout << 100 << '\n';
std::cout.unsetf ( std::ios::showbase ); // deactivate showbase
std::cout << 100 << '\n';
return 0;
}
std::ios_base::precision
作用:获取/设置浮点十进制精度
// modify precision
#include <iostream> // std::cout, std::ios
int main () {
double f = 3.14159;
std::cout.unsetf ( std::ios::floatfield ); // floatfield not set
std::cout.precision(5);
std::cout << f << '\n';
std::cout.precision(10);
std::cout << f << '\n';
std::cout.setf( std::ios::fixed, std:: ios::floatfield ); // floatfield set to fixed
std::cout << f << '\n';
return 0;
}
std::ios_base::width
作用:获取/设置字段宽度
// field width
#include <iostream> // std::cout, std::left
int main () {
std::cout << 100 << '\n';
std::cout.width(10);
std::cout << 100 << '\n';
std::cout.fill('x');
std::cout.width(15);
std::cout << std::left << 100 << '\n';
return 0;
}
std :: ios_base :: imbue
作用:设置语言环境(locale)
// imbue example
#include <iostream> // std::cout
#include <locale> // std::locale
int main()
{
std::locale mylocale(""); // get global locale
std::cout.imbue(mylocale); // imbue global locale
std::cout << 3.14159 << '\n';
return 0;
}
std :: ios_base :: sync_with_stdio
作用:设置每个输入输出操作后是否将标准C++流同步到标准C流
#include <iostream>
#include <cstdio>
int main()
{
std::ios::sync_with_stdio(false);
std::cout << "a\n";
std::printf("b\n");
std::cout << "c\n";
}
----