NBTModify is an old program of mine to read and write files in Minecraft's NBT (Named Binary Tag) format.
Currently, reading and writing from raw NBT files (compressed with GZip or Zlib, or uncompressed) and Anvil (region) files is supported.
Uploading of regional NBT tags to MCLevel Levels is to be implemented.
NBTModify is header-only. Just make sure that you have a working Zlib and Boost installation somewhere that NBTModify can find.
#include <nbtmodify/core.hpp>
#include <iostream>
int main() {
// Read NBT data
nbt::NBTTag root = nbt::read_nbt_gzip("path/to/NBT/file");
// Pretty-print to cout
std::cout << root.to_string() << std::endl;
// Access member of compound tag
std::cout << root["foo"].get<nbt::int_t>() << std::endl;
// To be continued...
return 0;
}Boost: https://boost.org (also download link if you don't already have it)