求助,如何按格式读取dat文件里面的内容
大家帮我看看,应该怎么实现文件source.dat中存放一下数据
0 7754.124999 7755.223222 155.23455
1 7723.223453 7763.122222 154.89900
.......类似格式就不多写了
现在希望读取文件内的内容。并把它保存到一个结构体数组中,应该如何实现。该结构体定义如下。
struct Tpoint
{
int P_ID;
float x,y,z;
}
以下是我的代码。希望大家指点以下,哪里出错了,应该如何改
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstdlib>
#include <vector>
#include <algorithm>
using namespace std;
struct Tpoint
{
int p_ID;
float x,y,z;
};
void OutPut(Tpoint & tp);
int main()
{
cout << fixed << right;
ifstream in_file;
in_file.open("sourcefile.dat",ios_base::in|ios_base::binary);
vector<Tpoint> point;
if (in_file.is_open())
{
Tpoint tp;
while (in_file.read((char *)&tp, sizeof(tp)))
{
point.push_back(tp);
}
}
in_file.close();
for_each(point.begin(), point.end(), OutPut);
return 0;
}
void OutPut(Tpoint & tp)
{
cout << setw(12) << tp.p_ID << setw(20) << tp.x
<< setw(20) << tp.y << setw(20) << tp.z << endl;
}