/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:格式输出
* 作 者: 雷恒鑫
* 完成日期: 2012 年 05 月23 日
* 版 本 号: V1.0
* 对任务及求解方法的描述部分
* 输入描述::对于下面两段程序,对照运行的结果和教材中关于格式控制的说明,在每一个cout后面用注释写清输出结果和产生这种结果的原因。在报告中提交加了注释的程序。
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
任务3.1
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int a;
cout<<"input a:";//输入a=18;
cin>>a;
cout<<"dec:"<<dec<<a<<endl; // 输出结果: dec: 18 原因:以10进制形式输出整数18。
cout<<"hex:"<<hex<<a<<endl; // 输出结果:hex:12 原因: 以16进制形式输出整数18。
cout<<"oct:"<<setbase(8)<<a<<endl; // 输出结果:oct: 22 原因:以8进制形式输出整数18.
char *pt="Jerryson";
cout<<setw(10)<<pt<<endl; // 输出结果:Jerryson 原因:指定域宽为10.输出字符串。
cout<<setfill('*')<<setw(10)<<pt<<endl; // 输出结果: **Jerryson 原因:指定域宽为10.输出字符串。空白处以‘*’填充。
double pi=22.0/7.0;
cout<<setiosflags(ios::scientific)<<setprecision(8);// 输出结果:无 原因:按指数形式输出8位小数。
cout<<"pi="<<pi<<endl; // 输出结果:输出结果:pi=3.14285714e+000 原因:按照上面的规则输出pi值。
cout<<"pi="<<setprecision(4)<<pi<<endl; // 输出结果:pi=3.1429e+000 原因:按指数形式输出4位小数。
cout<<"pi="<<setiosflags(ios::fixed)<<pi<<endl;// 输出结果:pi=0x1.9249p+1 原因:按小数形式输出小数。
system("pause");
return 0;
}
运行结果:
任务3.2
#include <iostream>
using namespace std;
int main( )
{
int a=54;
cout.setf(ios::showbase);输出结果:无 原因:设置输出时的基数符号。
cout<<"dec:"<<a<<endl; 输出结果:dec:54 原因:默认以10进制形式输出a。
cout.unsetf(ios::dec); 输出结果: 无 原因:终止10进制的格式设置。
cout.setf(ios::hex); 输出结果:无 原因:设置以16进制的输出状态。
cout<<"hex:"<<a<<endl; 输出结果:hex:0x36 原因:以16进制形式输出a。
cout.unsetf(ios::hex); 输出结果:无 原因:终止16进制的格式设置。
cout.setf(ios::oct); 输出结果:无 原因:设置以8进制的输出状态。
cout<<"oct:"<<a<<endl; 输出结果:oct:066 原因:以8进制形式输出a。
cout.unsetf(ios::oct);输出结果: 无 原因:终止以8进制输出的格式设置。
char *pt="Jerryson";
cout.width(10); 输出结果:无 原因:指定域宽为10。
cout<<pt<<endl; 输出结果:Jerryson 原因:按以上规定的格式输出字符串。
cout.width(10); 输出结果:无 原因:指定域宽为10。
cout.fill('*'); 输出结果:无 原因:指定空白处以‘*’填充。
cout<<pt<<endl; 输出结果:**Jerryson 原因:按以上规定的格式输出字符串。
double pi=22.0/7.0;
cout.setf(ios::scientific); 输出结果:无 原因:指定用科学计数法输出。
cout<<"pi="; 输出结果:pi= 原因:输出字符串。
cout.width(14); 输出结果:无 原因:指定域宽为14。
cout<<pi<<endl; 输出结果:*3.142857e+000 原因:按以上规定的格式输出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; 输出结果:+***3.142857 原因:输出pi,注意数符“+”的位置。
system("pause");
return 0;
}
运行结果: