/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:格式输出
* 作 者: 杨建和
* 完成日期: 2012 年 05 月 28 日
* 版 本 号: V1.0
* 输入描述::对于下面两段程序,对照运行的结果和教材中关于格式控制的说明,在每一个cout后面用注释写清输出结果和产生这种结果的原因。在报告中提交加了注释的程序。
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
#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 原因:这个不太懂 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; }
感言:
复习了一下以前学过的内容。比如十进制,十六进制的一些表示方法。还有就是 设置字节宽度,补充字节,科学技术法显示数等
还有就是 cout<<"pi="<<setiosflags(ios::fixed)<<pi<<endl;// 输出结果为什么:pi=0x1.9249p+1 这个没看明白