Похоже, что ваши координаты даны в формате DDDMMSS
, где DDD
- это трехзначное число градусов (до), MM
- это двузначное число минут, а SS
число секунд, состоящее из двух цифр, без разделителей между ними.
Технически, «правильный» способ для анализа подобного формата состоит в том, чтобы разбить строку на части и затем преобразовать каждую часть в целое числоотдельно.Но так как вам уже удалось прочитать все значения координат в одно целое число, как если бы это было одно десятичное число, мы можем просто поработать с этим и извлечь градусы, минуты и секунды, используя простую математику:
int dddmmss = 1631259; /* hardcoded input value for testing */
int degrees = dddmmss / 10000; /* drop the lowest 4 digits */
int minutes = (dddmmss / 100) % 100; /* drop the lowest 2 digits, then keep the next 2 */
int seconds = dddmmss % 100; /* just keep the lowest 2 digits */
printf("%03d° %02d' %02d''", degrees, minutes, seconds);
Попробуйте онлайн!