下边的代码会讲解:
1:C++常用控制符的使用,必须包含头文件< iomanip >
2:代码段尾会总结几个超重要细节知识点。
通过这段代码练习,从此C++控制符对于你一览无余。
#include<iostream>
#include<iomanip>
using namespace std;
/*
常用流控制字符
boolalpha:bool类型以true和false输出
setbase(n);设置整数为N进制进行打印。
setfill(n):设置填充字符
setprecision(n):设置有效位数为n,结合fixed才可以设置小数位
setw(n): 设置输出数据总共占多少位。
seriosflags(ios:left):设置对齐方式为左对齐,右对齐:ios::right
*/
int main() {
bool bNum = 1;
cout << boolalpha << bNum<<endl;
cout << hex << 32 << endl; //16进制
cout << setbase(16) << 32<<endl; //设置成十六进制
cout << oct << 32 << endl; //设置成八进制
cout << setprecision(4) << 32.1314 << endl; //保留结果为4位数
cout << fixed << setprecision(4) << 32.1314520<<endl; //保留结果为4位小数
cout << setiosflags(ios::fixed) << 32.1314520<<endl;//与上一行等效
cout << right << setw(8) << setfill('A') << "JTWH" << endl;
//setw()设置宽度后,默认是右对齐。
//这里的right可以换成setiosflags(ios::right)
cout << resetiosflags(ios::fixed) << 32.1314520<<endl; //清除格式
cout.unsetf(ios::boolalpha); //清除格式另一种方式
cout << bNum << endl;
//同样也可以使用resetiosflags(ios::boolapha)来清除格式,
//但这里要注意,不能把这个单独写出来,需要和cout一起使用
cout<<resetiosflags(ios::boolapha)<<bNum<<endl;
return 0;
}
知识点1:
凡是控制符不可以直接使用:
如:
不可以直接resetiosflags(iso:boolapha);
必须要这样用cout<<resetiosflags(ios::boolapha);
接下来的cout<<bNum<<endl;才会起作用。
当然可以连在一起
cout<<resetiosflags(ios::boolapha)<<bNum<<endl;
知识点2:
例如fixed,hex(16进制),oct(8进制)这类标识;
可以直接
cout<<fixed<<precision(4)<<4.131420;//输出4.1314
hex,oct同理
也可以加上setiosflags(ios::标识);
如:
cout<<setiosflags(ios::fixed)<<precision(4)<<4.131420;
效果都是一样的