So lesen Sie HGT-Dateien in C ++

Ich versuche, die in HGT-Dateien gespeicherten Höhendaten zu lesen. Soweit ich weiß, können sie als Binärdateien gelesen werden.

Ich habe diesen Thread gefunden:
Wie greife ich in C ++ auf .HGT SRTM-Dateien zu?

Basierend auf diesem Beitrag lautet mein Beispielcode:

#include <iostream>
#include <fstream>

int main(int argc, const char * argv[])
{

std::ifstream::pos_type size;
char * memblock;

std::ifstream file ("N45W066.hgt", std::ios::in|std::ios::binary|std::ios::ate);

if (file.is_open())
{
    size = 2;
    memblock = new char [size];

    file.seekg(0, std::ios::beg);
    file.read(memblock, size);

    int srtm_ver = 1201;
    int height[1201][1021];

    for (int i = 0; i<srtm_ver; ++i){
        for (int j = 0; j < srtm_ver; ++j) {

            height[i][j] = (memblock[0] << 8 | memblock[1]);
            std::cout<<height[i][j]<<" ";
        }
        std::cout<<std::endl;
    }
}


return 0;
}

Nach dem ersten Lauf gibt es mir ein paar Nullen und sonst nichts: | Die hgt-Datei ist gut, ich habe sie mit einer Anwendung getestet, die verschiedene Arten von Kartendateien lesen kann, und sie enthält die Höhendaten, die ich benötige.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage