遍历文件中所有的坐标,赋值给GeographyPoint westpoint[n] = { westlakeline1,westlakeline2,westlakeline3,westlakeline4 ...westlakelinen};GeographyPoint westlakeline1(tlon1, tlat1);GeographyPoint westlakelinen(tlonn, tlatn);并且全部从float类型转换为double类型,完整示例
时间: 2024-03-12 20:47:13 浏览: 67
好的,我来给您提供一个示例代码,具体如下:
```c++
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
#include <cstdlib>
#include <cmath>
using namespace std;
// 定义一个结构体,表示地理坐标点
struct GeographyPoint {
double longitude; // 经度
double latitude; // 纬度
};
// 将字符串类型的经纬度转换成浮点数类型的经纬度
double convertToDouble(string str) {
string::size_type sz;
double res = stod(str, &sz); // 将字符串转换成浮点数类型
return res;
}
// 读取文件中的所有坐标数据
vector<GeographyPoint> readPointsFromFile(string filename) {
vector<GeographyPoint> res; // 存储所有坐标点的容器
ifstream infile(filename); // 打开文件
string line;
while (getline(infile, line)) { // 逐行读取文件中的坐标点
string::size_type pos = line.find(","); // 查找逗号的位置,分割经纬度
if (pos == string::npos) { // 如果没有找到逗号,则说明该行数据不合法,跳过
continue;
}
string longitudeStr = line.substr(0, pos); // 截取经度字符串
string latitudeStr = line.substr(pos+1); // 截取纬度字符串
double longitude = convertToDouble(longitudeStr); // 将经度字符串转换成浮点数类型
double latitude = convertToDouble(latitudeStr); // 将纬度字符串转换成浮点数类型
GeographyPoint point;
point.longitude = longitude;
point.latitude = latitude;
res.push_back(point); // 将该坐标点存入容器中
}
infile.close(); // 关闭文件
return res;
}
int main() {
string filename = "points.txt"; // 坐标点所在文件名
vector<GeographyPoint> points = readPointsFromFile(filename); // 读取文件中的坐标点
int n = points.size(); // 坐标点的个数
GeographyPoint westpoint[n]; // 定义一个GeographyPoint类型的数组
for (int i = 0; i < n; i++) {
westpoint[i].longitude = points[i].longitude; // 将经度赋值给westpoint数组
westpoint[i].latitude = points[i].latitude; // 将纬度赋值给westpoint数组
}
return 0;
}
```
在上面的代码中,我们定义了一个 `GeographyPoint` 结构体,表示地理坐标点,其中包括了经度和纬度两个成员变量。然后,我们定义了一个 `convertToDouble` 函数,用于将字符串类型的经纬度转换成浮点数类型的经纬度,这里使用了 `stod` 函数进行转换。接着,我们定义了一个 `readPointsFromFile` 函数,用于从文件中读取所有的坐标点数据。该函数逐行读取文件中的坐标点,然后使用 `convertToDouble` 函数将字符串类型的经纬度转换成浮点数类型的经纬度,最后将该坐标点存入容器中。在 `main` 函数中,我们首先调用 `readPointsFromFile` 函数读取文件中的所有坐标点,然后根据坐标点的数量定义了一个 `GeographyPoint` 类型的数组 `westpoint`,最后将每个坐标点的经度和纬度赋值给 `westpoint` 数组中的相应元素。
阅读全文