C++第十五周【任务3】程序解析

来源:互联网 发布:网络的服务 编辑:程序博客网 时间:2024/04/28 22:20

/*
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:C++第十五周【任务3】                              
* 作    者:   李洪悬                              
* 完成日期:   2012  年  5  月 30 日
* 对任务及求解方法的描述部分

* 输入描述:

* 问题描述:程序解析

* 程序输出:

*/

【任务3】格式输出:对于下面两段程序,对照运行的结果和教材中关于格式控制的说明,在每一个cout
后面用注释写清输出结果和产生这种结果的原因。在报告中提交加了注释的程序(建议在IDE 中加好注
释再发博文

(任务3.1)

#include <iostream>    #include <iomanip>    using namespace std;    int main()  {      int a;      cout << "input a:";      cin >> a;//输入20      cout << "dec:" << dec << a << endl;   // 输出结果: dec: 20  原因:以十进制形式输出结果20。            cout << "hex:" << hex << a << endl;   // 输出结果: hex: 14  原因:以十六进制形式输出结果14。      cout << "oct:" << setbase(8) << a << endl; // 输出结果:oct: 24    原因:以八进制形式输出结果24.       char *pt = "Jerryson";            cout << setw(10) << pt << endl;  // 输出结果:Jerryson   原因:指定域宽为10.输出字符串      cout << setfill('*') << setw(10) << pt << endl;  // 输出结果:  **Jerryson   原因:指定域宽为10.输出字符串。空白处以‘*’填充。      double pi = 22.0 / 7.0;  //计算pi的值      cout << setiosflags(ios::scientific) << setprecision(8);// 按指数形式输出8位小数。       cout << "pi=" << pi << endl;  //输出结果:pi=3.14285714e+000  原因:按指数形式输出8位小数      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  原因:默认以十进制形式输出a。       cout.unsetf(ios::dec);  //终止十进制的格式设置       cout.setf(ios::hex);    //设置以十六进制的输出状态。      cout << "hex:" << a << endl; //输出结果:hex:0x36  原因:以十六进制形式输出a。       cout.unsetf(ios::hex);  //终止十六进制的格式设置      cout.setf(ios::oct);   //设置以八进制的输出状态。      cout << "oct:" << a << endl; //输出结果:oct:066  原因:以八进制形式输出a。      cout.unsetf(ios::oct);//终止以八进制输出的格式设置。      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;  //计算pi的值       cout.setf(ios::scientific);  //指定用科学计数法输出      cout << "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;  } 

输出结果;