cpp: ostream setf() 设置格式状态方法的初使用
来源:互联网 发布:ubuntu开启samba服务 编辑:程序博客网 时间:2024/06/05 20:52
osstream
的setf(iso_base::fmtflags) , width(n) , precision(n)
是用来设置格式状态的。这种格式状态,可以体现在控制台输出,也可以体现在文件中。(多态)
下面是一个示例程序,显示了这些格式化方法的使用示例。
#include <iostream>#include <fstream>using namespace std;void file_it(ostream &os, double fo, const double fe[], int n);const int LIMIT = 5;int main() { ofstream fout; const char *fn = "ep-data.txt"; fout.open(fn); if (!fout.is_open()) { cout << "Can't open " << fn << ". Bye\n"; exit(EXIT_FAILURE); } double objective; cout << "Enter the focal length of your " "telescope objective in mm: "; cin >> objective; double eps[LIMIT]; cout << "Enter the focal length,in mm of " << LIMIT << " eyepieces:\n"; for (int i = 0; i < LIMIT; ++i) { cout << "Eyepiece #" << (i + 1) << " : "; cin >> eps[i]; } file_it(fout, objective, eps, LIMIT); file_it(cout, objective, eps, LIMIT); fout.close(); return 0;}void file_it(ostream &os, double fo, const double fe[], int n) { ios_base::fmtflags initial; // set current and save prev format initial = os.setf(ios_base::fixed); os.precision(0); // 设置小数点后的长度为0 os << "Focal length of objective: " << fo << " mm\n"; os.setf(ios_base::showpoint); os.precision(1); // 设置小数点后的长度为1 os.width(12); // 设置字段宽度 os << "f.l. eyepiece"; os.width(15); os << "magnification" << endl; for (int i = 0; i < n; ++i) { os.width(12); os << fe[i]; os.width(15); os << int(fo / fe[i] + 0.5) << endl; } os.setf(initial); // reset to prev format}
其中:
file_it(fout, objective, eps, LIMIT);
将格式化数据写入文件中;file_it(cout, objective, eps, LIMIT);
将格式化数据显示在控制台上。
输出示例:(粗体是输入)
Enter the focal length of your telescope objective in mm: 1800
Enter the focal length,in mm of 5 eyepieces:
Eyepiece #1 : 19
Eyepiece #2 : 30
Eyepiece #3 : 14
Eyepiece #4 : 8.8
Eyepiece #5 : 7.5
Focal length of objective: 1800 mm
f.l. eyepiece magnification
19.0 95
30.0 60
14.0 129
8.8 205
7.5 240Process finished with exit code 0
此时,文件ep-data.txt
中的内容为(最后一行是空行):
Focal length of objective: 1800 mm
f.l. eyepiece magnification
19.0 95
30.0 60
14.0 129
8.8 205
7.5 240
ps: 以上内容来自《c++ primer plus》
- cpp: ostream setf() 设置格式状态方法的初使用
- C++ ostream类包含的一个简单的用于控制格式的成员函数setf precision
- C++中setf()的使用
- C++ ostream 常用格式
- setf ()
- cout.setf()是用来设志位的,cout.precision()是用来设置精度的
- std::ostream格式被修改后恢复成先前的格式
- ostream&
- OSTREAM
- Copy 方法 和 ostream 迭代器
- 设置字段显示格式的方法
- Excel 条件格式的设置方法
- TextView中设置文本格式的方法
- php设置编码格式的方法
- "Spring"中设置编码格式的方法
- c++重载ostream的实现
- DEV-CPP中生成和使用DLL的方法
- DEV-CPP中生成和使用DLL的方法
- java高并发学习记录-死锁,活锁,饥饿
- AngularJS 学习
- 求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。
- 分布式作业 gossip模式
- 2018年 java面试跳槽必备
- cpp: ostream setf() 设置格式状态方法的初使用
- JVM —— Object Header(对象头)
- xgboost安装问题:动态库
- SpringMVC学习记录(四)--文件上传与下载
- Ubuntu 阿里源更新 && nvidia驱动安装 && cuda 安装
- 01-nodeJs下载及安装
- Java BAT大型公司面试专属必备技能视频教程
- python requests的安装与简单运用
- Java Web知识点总结——JSP脚本和指令的使用