将文件里的坐标导入进vector pair容器中
时间: 2024-02-12 16:06:09 浏览: 61
autocad中c#按坐标批量导入图片
5星 · 资源好评率100%
好的,我可以帮你解决这个问题。首先,你需要打开文件并读取每一行,然后将每一行中的坐标提取出来,存储到一个 pair 对象中,并将这个 pair 对象添加到 vector 容器中。以下是一个示例代码:
```c++
#include <iostream>
#include <fstream>
#include <vector>
#include <utility>
using namespace std;
int main() {
ifstream file("coordinates.txt"); // 打开文件
vector<pair<int, int>> coordinates; // 定义 vector 容器存储坐标
if (file.is_open()) { // 判断文件是否打开成功
string line;
while (getline(file, line)) { // 逐行读取文件
int x, y;
sscanf(line.c_str(), "(%d,%d)", &x, &y); // 提取坐标
coordinates.push_back(make_pair(x, y)); // 添加到 vector 容器中
}
file.close(); // 关闭文件
}
for (auto& p : coordinates) { // 输出 vector 容器中的坐标
cout << "(" << p.first << "," << p.second << ")" << endl;
}
return 0;
}
```
在上述代码中,我们使用 `sscanf` 函数从文件中读取坐标,并将它们存储到一个 pair 对象中。然后,我们将这个 pair 对象添加到一个 vector 容器中。注意,我们在读取文件后需要关闭文件,以避免资源泄漏。最后,我们使用一个循环输出 vector 容器中的所有坐标。
阅读全文