大量のデータ(可変長の整数配列、テキスト文字列のライブラリなど)を実行可能ファイルに直接ハードコーディングしたいので、追加のファイルはありません。大きなデータセットを実行可能ファイルにハードコーディングしますか?
私の質問は、これをC++で行う最も実用的で組織化された方法は何ですか?ヘッダーやソースファイルのどこにデータを置くのですか?私はどのような構造を使うべきですか?
私はこれがデータを扱う受け入れられた方法ではないことを認識しています。しかし、私をユーモアしてください!
大量のデータ(可変長の整数配列、テキスト文字列のライブラリなど)を実行可能ファイルに直接ハードコーディングしたいので、追加のファイルはありません。大きなデータセットを実行可能ファイルにハードコーディングしますか?
私の質問は、これをC++で行う最も実用的で組織化された方法は何ですか?ヘッダーやソースファイルのどこにデータを置くのですか?私はどのような構造を使うべきですか?
私はこれがデータを扱う受け入れられた方法ではないことを認識しています。しかし、私をユーモアしてください!
C++とCの両方で、ヘッダファイルを使用してこれらの変数の宣言を行い、実際の初期化コードを.c(または.cc)ファイルに入れることができます。 CとC++の両方に適切なイニシャライザ構文があります。たとえば、次のように
mydata.h:
extern int x;
extern int a[10];
extern unsigned char *s;
mydata.c:
#include "mydata.h"
int x = 123;
int a[10] = {1,2,3,4,5,6,7,8,9,10};
unsigned char *s = "mystring";
その後、main.cのがあります:
:#include "mydata.h"
#include <stdio.h>
int main(const int argc, char *argv[])
{
printf("%d, %d, %s\n", x,a[5],s);
}
テストランは、このようになります
$gcc -o main main.c mydata.c
$ ./main
123, 6, mystring
実際に整理するために、CSVファイルのSQLデータベースのような、あなたのデータソースからこのような形式のファイルを生成するPerl/Python/PHPスクリプトを作成します。プロジェクトにOBJとのリンクにデータを変換し
http://sourceforge.net/projects/bin2obj/
:
はこれを試してみてください。
これを見る前にこれを見たことがあります。 – djechlin
これを別の.cppファイル(例えば 'resources.cpp')に入れてみて、それを' extern'にしてヘッダファイルを与えてください。 –
http://stackoverflow.com/questions/410980/include-a-text-file-in-a-c-program-as-a-char関連ではなく、私が探していたものではありません。 – djechlin