~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
#include "flatbuffers/flatbuffers.h"
#include "monster_test_generate.h"
- #include <cstdio> // For printing and file access.
+ #include <iostream> // C++ header file for printing
+ #include <fstream> // C++ header file for file access
- FILE* file = fopen("monsterdata_test.mon", "rb");
- fseek(file, 0L, SEEK_END);
- int length = ftell(file);
- fseek(file, 0L, SEEK_SET);
+
+ std::ifstream infile;
+ infile.open("monsterdata_test.mon", std::ios::binary | std::ios::in);
+ infile.seekg(0,std::ios::end);
+ int length = infile.tellg();
+ infile.seekg(0,std::ios::beg);
char *data = new char[length];
- fread(data, sizeof(char), length, file);
- fclose(file);
+ infile.read(data, length);
+ infile.close();
auto monster = GetMonster(data);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
convenient accessors for all fields, e.g. `hp()`, `mana()`, etc:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
- printf("%d\n", monster->hp()); // `80`
- printf("%d\n", monster->mana()); // default value of `150`
- printf("%s\n", monster->name()->c_str()); // "MyMonster"
+ std::cout << "hp : " << monster->hp() << std::endl; // `80`
+ std::cout << "mana : " << monster->mana() << std::endl; // default value of `150`
+ std::cout << "name : " << monster->name()->c_str() << std::endl; // "MyMonster"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*Note: That we never stored a `mana` value, so it will return the default.*