酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

题目(description): 卫星导航系统(如我国自主研发的北斗卫星导航系统)能实时获取位置、速度、时间等时空信息,在交通运输、农林渔业、气象测报、通信授时、救灾减灾、公共安全等领域都得到了广泛应用。 在应用层面,卫星导航系统一般以报文方式进行数据传输,其中$gprmc是常用报文之一,基本的格式如下: $gprmc,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh <1> utc时间,hhmmss.sss(时分秒.毫秒)格式 <2> 定位状态,a=有效定位,v=无效定位 <3> 纬度ddmm.mmmm(度分)格式 <4> 纬度半球n(北半球)或s(南半球) <5> 经度dddmm.mmmm(度分)格式 <6> 经度半球e(东经)或w(西经) <7> 地面速率(000.0~999.9节) <8> 地面航向(000.0~359.9度,以正北为参考基准) <9> utc日期,ddmmyy(日月年)格式 <10> 磁偏角(000.0~180.0度,前面的0也

以下是用 C++ 实现的代码: ```cpp #include <iostream> #include <string> #include <sstream> // 提取经纬度值的函数 void extractLatLong(const std::string& gprmcMessage) { std::stringstream ss(gprmcMessage); std::string token; int commaCount = 0; std::string latitude, longitude; while (std::getline(ss, token, ',')) { commaCount++; if (commaCount == 4) { latitude = token; } else if (commaCount == 6) { longitude = token; break; } } std::cout << "纬度: " << latitude << ", 经度: " << longitude << std::endl; } int main() { std::string gprmcMessage = "$gprmc,123456.789,a,3456.7890,N,12345.6789,E,100.5,200.6,010223,10.5,E,a"; extractLatLong(gprmcMessage); return 0; } ``` // 注意 1: 处理输入时要确保输入的格式符合预期。 // 注意 2: 对于异常情况的处理可以进一步完善,比如输入为空等。 // 注意 3: 代码的可扩展性,方便后续添加更多功能。 [2025-01-08 03:46:29 | AI写代码神器 | 346点数解答]

相关提问