Вот похожий вопрос по теме с хорошим описанием файла:
как читать двоичные файлы NASA .hgt
Я довольно новичок в программировании в целом, и мои усилия до сих пор были очень ограничены. Моя конечная цель — получить доступ к данным о высоте и сохранить их в двумерном массиве для быстрого доступа. Я пытался прочитать файл 2 байта за раз, как было предложено, но я не знаю, что делать дальше. Вот что у меня так далеко:
#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
ifstream::pos_type size;
char * memblock;
ifstream file ("N34W119.hgt", ios::in|ios::binary|ios::ate);
if (file.is_open())
{
size = 2;
memblock = new char [size];
file.seekg (0, ios::beg);
file.read (memblock, size);
//I don't know what to do nextfile.close();
}
return 0;
}
Спасибо за любую помощь!
// SRTM_version 1201 or 3601
int height[SRTM_version][SRTM_version];
for ( int r = 0; r < SRTM_version ; r++ ) {
for ( int c = 0 ; c < SRTM_verision; c++ ) {
height[r][c] = (memblock[0] << 8) | memblock[1];
}
}
Других решений пока нет …