char类型数组存经纬度 c++示例
时间: 2024-09-24 09:30:04 浏览: 28
unsigned char数组转成string 用16进制表示
在C++中,通常不会直接使用`char`类型数组来存储经纬度,因为`char`用于存储单个字符,而经纬度通常会以浮点数表示,如`double`或`float`。但是,如果你确实需要这样做(例如,作为某种压缩编码或者为了节省空间),可以将经纬度转换成字符串形式并存储在`char`数组中。
以下是一个简单的例子,假设经纬度已经四舍五入到小数点后6位:
```cpp
#include <iostream>
#include <string>
// 将经纬度转换为字符串
std::string coordToString(double latitude, double longitude) {
std::ostringstream oss;
oss << std::fixed << std::setprecision(6) << latitude << "," << longitude;
return oss.str();
}
int main() {
double lat = 39.9042; // 北纬
double lon = -75.1652; // 西经
// 存储经纬度
char coordArray[64]; // 假设最多容纳两位小数加逗号和空格
size_t len = coordToString(lat, lon).size();
strncpy(coordArray, coordToString(lat, lon).c_str(), len);
coordArray[len] = '\0'; // 添加结束符
// 打印存储后的坐标
std::cout << "Encoded coordinates: " << coordArray << std::endl;
// 如果你需要解析这个字符串,记得要用适当的方式
// double latDecoded, lonDecoded;
// // 解析步骤...
return 0;
}
```
阅读全文