ep9_3.cpp
上传用户:wxcui2006
上传日期:2022-07-12
资源大小:1274k
文件大小:2k
源码类别:

书籍源码

开发平台:

Visual C++

  1. /*9.3 编程实现以下数据输入输出:
  2. a) 以左对齐方式输出整数,域宽为12;
  3. b) 以八进制、十进制、十六进制输入输出整数;
  4. c) 实现浮点数的指数格式和定点格式的输入输出,并指定精度;
  5. d) 把字符串读入字符型数组变量中,从键盘输入,要求输入串的空格也全部读入,以回车换行符结束;
  6. e) 以上要求用流成员函数和流操作子各做一遍。
  7. */
  8. #include<iostream>
  9. #include<iomanip>
  10. using namespace std;
  11. int main(void){
  12. int inum1=255,inum2=8191,inum3=65535;
  13. double fnum=31.415926535,fnum1;
  14. char str[255];
  15. cout<<"以左对齐方式输出整数,域宽为12:"<<endl;
  16. cout.flags(ios::left);
  17. cout.width(12);cout<<inum1;
  18. cout.width(12);cout<<inum2;
  19. cout.width(12);cout<<inum3<<endl;
  20. cout.flags(ios::left|ios::oct|ios::showbase);//或(cout.flags()|ios::oct|ios::showbase)
  21. cout.width(12);cout<<inum1;
  22. cout.width(12);cout<<inum2;
  23. cout.width(12);cout<<inum3<<endl;
  24. cout.setf(ios::hex,ios::hex|ios::oct);//或cout.setf(ios::hex);cout.unsetf(ios::oct);
  25. //特别注意第二个参数要包含第一个参数,否则两个参数位置上的位全清零,结果错
  26. cout.width(12);cout<<inum1;
  27. cout.width(12);cout<<inum2;
  28. cout.width(12);cout<<inum3<<endl;
  29. cout.precision(10); //精度为10位,小数点后10位
  30. cout.setf(ios::scientific,ios::floatfield);//floatfield为0x1800
  31. cout<<"科学数表达方式:"<<fnum<<'n';
  32. cout.setf(ios::fixed,ios::floatfield); //设为定点,取消科学数方式
  33. cout<<"定点表达方式:"<<fnum<<'n';
  34. cout<<"请输入PI:"<<endl;
  35. cin.precision(4);
  36. cin>>fnum1;//输入3.1415926535
  37. cout<<fnum1<<'n';//由输出看输入精度无作用
  38. cin.get();//吸收回车
  39. cout<<"请输入一个字符串:"<<endl;
  40. cin.getline(str,255);
  41. cout<<str<<endl;
  42. cout.flags(0);
  43. cout<<"以左对齐方式输出整数,域宽为12:"<<endl;
  44. cout<<left<<dec<<setw(12)<<inum1;
  45. cout<<setw(12)<<inum2;
  46. cout<<setw(12)<<inum3<<endl;
  47. cout<<showbase<<oct<<setw(12)<<inum1;
  48. cout<<setw(12)<<inum2;
  49. cout<<setw(12)<<inum3<<endl;
  50. cout<<hex<<setw(12)<<inum1;
  51. cout<<setw(12)<<inum2;
  52. cout<<setw(12)<<inum3<<endl;
  53. cout<<setprecision(10)<<scientific<<"科学数表达方式:"<<fnum<<'n';
  54. cout<<fixed<<"定点表达方式:"<<fnum<<'n';//精度6位,而不是小数点后
  55. return 0;
  56. }