1. ホーム
  2. c

[解決済み] Cプログラムの中でテキストファイルをchar[]として "#include "する。

2022-04-29 13:23:23

質問

C言語のプログラムで、コンパイル時にテキストファイル全体を文字列としてインクルードする方法はありますか?

のようなものです。

  • file.txtとなります。

    This is
    a little
    text file
    
    
  • main.c:

    #include <stdio.h>
    int main(void) {
       #blackmagicinclude("file.txt", content)
       /*
       equiv: char[] content = "This is\na little\ntext file";
       */
       printf("%s", content);
    }
    
    

標準出力に出力する小さなプログラムを取得する "これは 小さな テキストファイルです。

今のところ、ハッキリとしたpythonスクリプトを使っていますが、尻切れトンボで変数名が1つしか使えないので、他の方法を教えてください。

どのように解決するのですか?

を使うことをお勧めします(unix util)。 xxd を使用します。 こんな風に使うことができます。

$ echo hello world > a
$ xxd -i a

を出力します。

unsigned char a[] = {
  0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x0a
};
unsigned int a_len = 12;