在C++中,cout代表的是标准输出设备,即显示器,相对于C语言中所使用的printf函数,cout显得更为灵活。下面以30、300和1024三个数为例子,简单说明cout输出时所选格式的输出。cout默认以十进制方式输出数值,也可以设置为八进制(oct)、十六进制(hex)输出方式,同时还可以显示输出方式的基指示符(进制标识符,例如八进制的O,十六进制的Ox)。
//设置输出格式
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout<<"please input a string"<<endl;
char str[];
cin>>str; //cin默认以空格作为定界符,考虑使用getline()函数
cout<<"str = "<<str<<endl; cout<<"----------------"<<endl; int x = , y = , z = ;
cout<<x<<' '<<y<<' '<<z<<endl; cout.unsetf(ios::dec); //取消十进制输出格式
cout.setf(ios::showbase | ios::uppercase); //showbase是基指示符,指示进制,uppercase只对于OX大写有效
cout<<x<<' '<<y<<' '<<z<<endl; cout.unsetf(ios::showbase | ios::uppercase); //取消showcase和uppercase
cout.setf(ios::oct); //设置八进制输出格式
cout<<x<<' '<<y<<' '<<z<<endl; cout.setf(ios::showbase | ios::uppercase);
cout<<x<<' '<<y<<' '<<z<<endl; cout.unsetf(ios::oct);
cout.unsetf(ios::showbase | ios::uppercase );
cout.setf(ios::hex); //设置十六进制输出格式
cout<<x<<' '<<y<<' '<<z<<endl; //cout.unsetf(ios::showbase | ios::lowercase ); //lowercase在此处不行
//cout<<x<<' '<<y<<' '<<z<<endl; cout.setf(ios::showbase | ios::uppercase);
cout<<x<<' '<<y<<' '<<z<<endl; cout.unsetf(ios::showbase | ios::uppercase);
cout.unsetf(ios::hex);
cout<<x<<' '<<y<<' '<<z<<endl; cout<<"----------------"<<endl;
cout<<x<<' '<<y<<' '<<z<<endl; //按十进制输出
cout<<oct<<x<<' '<<y<<' '<<z<<endl; //按八进制输出 cout<<setiosflags(ios::showbase); //设置基指示符 //setiosflags设置
cout<<x<<' '<<y<<' '<<z<<endl; //仍按八进制输出 cout<<resetiosflags(ios::showbase); //取消基指示符 //resetiosflags取消
cout<<hex<<x<<' '<<y<<' '<<z<<endl; //按十六进制输出 //设置基指示符和数值中的字母大写输出
cout<<setiosflags(ios::showbase | ios::uppercase);
cout<<x<<' '<<y<<' '<<z<<endl; //仍按十六进制输出 //取消基指示符和数值中的字母大写输出
cout<<resetiosflags(ios::showbase | ios::uppercase);
cout<<x<<' '<<y<<' '<<z<<endl; //仍按十六进制输出 cout<<dec<<x<<' '<<y<<' '<<z<<endl; //按十进制输出 return ;
}
程序运行结果: