问题及代码:
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:cAllsigns.cpp
* 作 者: 王志
* 完成日期:2015年 1月 2 日
* 版 本 号:v1.0
*
* 问题描述:在计算机上单步运行下面的程序,观察输出的结果,领会各种控制符号所起的作用和方式
* 输入描述:分别定义一个字符型、整型、双精度型常量,设置不同格式
* 程序输出:不同格式下的输出
*/
#include <iostream>
#include <iomanip>//不要忘记包含此头文件
using namespace std;
int main()
{
int a=34;
cout<<"hex:"<<hex<<a<<endl; //设置数值的基数为16
cout<<"oct:"<<setbase(8)<<a<<endl; //设置数值基数为8,setbase(8)可用oct代替
cout<<"dec:"<<dec<<a<<endl; //设置数值的基数为10
char *pt="China";
cout<<setw(10)<<pt<<endl; //设置字段宽度为10位
cout<<setfill('*')<<setw(10)<<pt<<endl; //设置填充字符‘*’且字段宽度为10
double d=225.0/0.7;
cout<<"d="<<d<<endl; //按默认格式输出(以十进制小数形式输出,全部有效数字为6位
cout<<"d="<<setprecision(4)<<d<<endl; //设置输出全部有效数字为4位
cout<<"d="<<setiosflags(ios::fixed)<<d<<endl;//以固定小数位输出,默认输出4位小数
cout<<setprecision(5)<<d<<endl; //以固定小数位5位输出
return 0;
}
运行结果:
知识点:
输入输出流的控制符
心得:
1.按照不同的输出要求,借助控制符可以实现实用的输出,不止这些,还有比如
setiosflags(ios::left)输出数据左对齐;
setiosflags(ios::right)输出数据右对齐;
setiosflags(ios::skipws)忽略前导的空格;
setiosflags(ios::uppercase)数据以十六进制形式输出时字母以大写表示
setiosflags(ios::lowercase) 数据以十六进制形式输出时字母以小写表示
setiosflags(ios::showpos) 输出正数时给出‘+’号
setiosflags(ios::scientific) 设置浮点数以科学技术法显示
等,多用而熟悉,记忆也好记忆: set-设置 ios-输入输出流 precision-精度 fill-填充
w-width宽度 flags-标志 fixed-固定的 showpos-show positive显示正号
2.话说使用控制符时,在程序单位的开头勿忘#include <iomanip>