当前位置:   article > 正文

流作为函数实参_流作为函数参数

流作为函数参数
  1. #include<iostream>
  2. #include<fstream>
  3. #include<cstdlib>
  4. #include<iomanip> //使用setw必须
  5. using namespace std;
  6. void make_neat(ifstream& messy_file,ofstream& neat_file,
  7. int number_after_decimalpoint,int field_width);
  8. //每个数字占用的宽度field_width
  9. int main()
  10. {
  11. ifstream fin;
  12. ofstream fout;
  13. fin.open("rawdata.txt");
  14. if(fin.fail())
  15. {cout<<"input file opening failed \n";
  16. exit(1);}
  17. fout.open("neat.txt");
  18. if(fout.fail())
  19. {cout<<"output file opening failed \n";
  20. exit(1);}
  21. make_neat(fin,fout,5,12);
  22. fin.close();
  23. fout.close();
  24. cout<<"end of program \n";
  25. return 0;
  26. }
  27. void make_neat(ifstream& messy_file,ofstream& neat_file, //流参数必须是引用调用
  28. int number_after_decimalpoint,int field_width)
  29. {
  30. neat_file.setf(ios::fixed);
  31. neat_file.setf(ios::showpoint);
  32. neat_file.setf(ios::showpos);
  33. neat_file.precision(number_after_decimalpoint); //precision 输出流的成员函数保留小数
  34. cout.setf(ios::fixed); //在正号前面显示正号
  35. cout.setf(ios::showpoint);
  36. cout.setf(ios::showpos);
  37. cout.precision(number_after_decimalpoint);
  38. double next;
  39. while(messy_file>>next) //如果还有要去读的数字就满足条件
  40. {
  41. cout<<setw(field_width)<<next<<endl; //setw 操作元 指定不同的域宽
  42. neat_file<<setw(field_width)<<next<<endl;
  43. }
  44. }
  1. out_stream.setf(ios::fixed);
  2. out_stream.setf(ios::pointer);
  3. out_stream.precision(2);
  4. /*可以为任何输出流使用这些格式化命令,precision(2)保证保留2位小数点。setf 是set flag标志寄存器 .ios::fixed 标志导致流采用所谓的定点表示法。一旦设置ios::fixed 那么输出到那个流的所用浮点数会采用日常生活中常规方法写入而不是e计数法。ios::showpoint 标志要求输出流总是在浮点数(double)包含一个小数点。*/



 
 
ft     


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/357418
推荐阅读
相关标签
  

闽ICP备14008679号