diff options
author | kulswanand <swanand1987@gmail.com> | 2018-08-14 05:06:11 +0530 |
---|---|---|
committer | Wouter van Oortmerssen <aardappel@gmail.com> | 2018-08-13 16:36:11 -0700 |
commit | c721009491dc8275052cf33f7334e015ed737927 (patch) | |
tree | e340cc76c6ff94bba70565e384728b290f4b1276 /docs | |
parent | 55289c55bf1b1a37d4598fdeb658d04c0c07af55 (diff) | |
download | flatbuffers-c721009491dc8275052cf33f7334e015ed737927.tar.gz |
Proposing use of C++ header files and functions (#4869)
* Proposing use of C++ header files and functions
Proposing use of C++ header files and functions instead of C header file and functions.
Here are few examples for comparison :
C C++
<cstdio> <iostream> & <fstream>
printf() cout
fopen() ifstream
etc ...
Please let me know if there are any comments.
* Updated diff based on review comments
Diffstat (limited to 'docs')
-rw-r--r-- | docs/source/CppUsage.md | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/docs/source/CppUsage.md b/docs/source/CppUsage.md index 2922b4b2..983dc5ae 100644 --- a/docs/source/CppUsage.md +++ b/docs/source/CppUsage.md @@ -59,15 +59,18 @@ a `char *` array, which you pass to `GetMonster()`. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.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); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -78,9 +81,9 @@ If you look in your generated header, you'll see it has 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.* |