编写程序C++读取off文件并存住到一个vector数组
时间: 2024-01-20 15:03:59 浏览: 86
好的,下面是一个简单的C++程序,可以读取OFF文件,并将顶点信息存储到一个vector数组中:
```c++
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
int main()
{
// 打开OFF文件
ifstream infile("example.off");
// 读取文件头
string format;
infile >> format;
if (format != "OFF") {
cout << "Error: Invalid file format" << endl;
return 1;
}
// 读取顶点和面数
int num_vertices, num_faces, num_edges;
infile >> num_vertices >> num_faces >> num_edges;
// 读取顶点坐标
vector<vector<double>> vertices(num_vertices, vector<double>(3));
for (int i = 0; i < num_vertices; i++) {
infile >> vertices[i][0] >> vertices[i][1] >> vertices[i][2];
}
// 关闭文件
infile.close();
// 输出读取的顶点坐标
for (int i = 0; i < num_vertices; i++) {
cout << "Vertex " << i << ": (" << vertices[i][0] << ", " << vertices[i][1] << ", " << vertices[i][2] << ")" << endl;
}
return 0;
}
```
在这个程序中,我们使用了一个vector<vector<double>>来存储顶点信息。每个顶点用一个长度为3的double型数组来表示其坐标。在读取文件时,我们首先读取文件头,判断文件格式是否正确。然后读取顶点数、面数和边数。接着,我们定义一个vector数组vertices,用来存储顶点坐标。最后,我们读取每个顶点的坐标,并将其存储到vertices数组中。程序结束后,我们输出读取的顶点坐标。
你可以将上述程序复制到一个代码文件中,并将文件名改为你想要读取的OFF文件名。运行程序后,将会在控制台输出读取的顶点坐标。
阅读全文