- 使用控制符控制输出格式
- 这些控制符是在头文件
iomanip
中定义的,因而程序中应当包含iomanip
。
- 这些控制符是在头文件
#include <iostream>
#include <iomanip>//不要忘记包含此头文件
using namespace std;
int main()
{
int a;
cout<<″input a:″;
cin>>a;
cout<<″dec:″<<dec<<a<<endl; //以十进制形式输出整数
cout<<″hex:″<<hex<<a<<endl; //以十六进制形式输出整数a
cout<<″oct:″<<setbase(8)<<a<<endl; //以八进制形式输出整数a
char *pt=″China″; //pt指向字符串″China″
cout<<setw(10)<<pt<<endl; //指定域宽为10,输出字符串
cout<<setfill(′*′)<<setw(10)<<pt<<endl; //指定域宽10,输出字符串,空白处以′*′填充
double pi=22.0/7.0; //计算pi值
cout<<setiosflags(ios::scientific)<<setprecision(8);//按指数形式输出,8位小数
cout<<″pi=″<<pi<<endl; //输出pi值
cout<<″pi=″<<setprecision(4)<<pi<<endl; //改为4位小数
cout<<″pi=″<<setiosflags(ios::fixed)<<pi<<endl;//改为小数形式输出
return 0;
}
/*
input a:34↙(输入a的值)
dec:34 (十进制形式)
hex:22 (十六进制形式)
oct:42 (八进制形式)
China (域宽为10)
*****China (域宽为10,空白处以′*′填充)
pi=3.14285714e+00 (指数形式输出,8位小数)
pi=3.1429e+00 (指数形式输出,4位小数)
pi=3.143 (小数形式输出,精度仍为4)
*/
- 通过调用流对象
cout
中用于控制输出格式的成员函数来控制输出格式。- 流成员函数
set
f和控制符setiosflags
括号中的参数表示格式状态,它是通过格式标志来指定的。格式标志在类ios
中被定义为枚举值。因此在引用这些格式标志时要在前面加上类名ios和域运算符“::”
- 流成员函数
#include <iostream>
using namespace std;
int main( )
{
int a=21
cout.setf(ios::showbase);//显示基数符号(0x或0)
cout<<″dec:″<<a<<endl; //默认以十进制形式输出a
cout.unsetf(ios::dec); //终止十进制的格式设置
cout.setf(ios::hex); //设置以十六进制输出的状态
cout<<″hex:″<<a<<endl; //以十六进制形式输出a
cout.unsetf(ios::hex); //终止十六进制的格式设置
cout.setf(ios::oct); //设置以八进制输出的状态
cout<<″oct:″<<a<<endl; //以八进制形式输出a
cout.unseft(ios::oct);
char *pt=″China″; //pt指向字符串″China″
cout.width(10); //指定域宽为10
cout<<pt<<endl; //输出字符串
cout.width(10); //指定域宽为10
cout.fill(′*′); //指定空白处以′*′填充
cout<<pt<<endl; //输出字符串
double pi=22.0/7.0; //输出pi值
cout.setf(ios::scientific); //指定用科学记数法输出
cout<<″pi=″; //输出″pi=″
cout.width(14); //指定域宽为14
cout<<pi<<endl; //输出pi值
cout.unsetf(ios::scientific); //终止科学记数法状态
cout.setf(ios::fixed); //指定用定点形式输出
cout.width(12); //指定域宽为12
cout.setf(ios::showpos); //正数输出“+”号
cout.setf(ios::internal); //数符出现在左侧
cout.precision(6); //保留6位小数
cout<<pi<<endl; //输出pi,注意数符“+”的位置
return 0;
}
/*
dec:21(十进制形式)
hex:0x15 (十六进制形式,以0x开头)
oct:025 (八进制形式,以0开头)
China (域宽为10)
*****China (域宽为10,空白处以′*′填充)
pi=**3.142857e+00 (指数形式输出,域宽14,默认6位小数)
+***3.142857 (小数形式输出,精度为6,最左侧输出数符“+”)
*/