📄 datascan.cpp
字号:
//: C05:Datascan.cpp
// From "Thinking in C++, 2nd Edition, Volume 2"
// by Bruce Eckel & Chuck Allison, (c) 2001 MindView, Inc.
// Available at www.BruceEckel.com.
//{L} Datalog ../TestSuite/Test
// Verify and view logged data
#include "DataLogger.h"
#include "../require.h"
#include <iostream>
#include <fstream>
#include <strstream>
#include <iomanip>
using namespace std;
int main() {
ifstream bindata("data.bin", ios::binary);
assure(bindata, "data.bin");
// Create comparison file to verify data.txt:
ofstream verify("data2.txt");
assure(verify, "data2.txt");
DataPoint d;
while(bindata.read((char*)&d, sizeof d))
d.print(verify);
bindata.clear(); // Reset state to "good"
// Left-align everything:
cout.setf(ios::left, ios::adjustfield);
// Fixed precision of 4 decimal places:
cout.setf(ios::fixed, ios::floatfield);
cout.precision(4);
int recnum = 0;
while(true) {
bindata.seekg(recnum* sizeof d, ios::beg);
cout << "record " << recnum << endl;
if(bindata.read((char*)&d, sizeof d)) {
cout << asctime(&(d.getTime()));
cout << setw(11) << "Latitude"
<< setw(11) << "Longitude"
<< setw(10) << "Depth"
<< setw(12) << "Temperature"
<< endl;
// Put a line after the description:
cout << setfill('-') << setw(43) << '-'
<< setfill(' ') << endl;
cout << setw(11) << d.getLatitude()
<< setw(11) << d.getLongitude()
<< setw(10) << d.getDepth()
<< setw(12) << d.getTemperature()
<< endl;
} else {
cout << "invalid record number" << endl;
exit(0);
}
recnum++;
}
} ///:~
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -