aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorkulswanand <swanand1987@gmail.com>2018-08-14 05:06:11 +0530
committerWouter van Oortmerssen <aardappel@gmail.com>2018-08-13 16:36:11 -0700
commitc721009491dc8275052cf33f7334e015ed737927 (patch)
treee340cc76c6ff94bba70565e384728b290f4b1276 /docs
parent55289c55bf1b1a37d4598fdeb658d04c0c07af55 (diff)
downloadflatbuffers-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.md23
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.*