Cプログラムでテキストファイルをchar[]として「#include」する 質問する

Cプログラムでテキストファイルをchar[]として「#include」する 質問する

コンパイル時にテキスト ファイル全体を文字列として C プログラムに含める方法はありますか?

何かのようなもの:

  • ファイル.txt:

    This is
    a little
    text file
    
  • メイン.c:

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

stdout に「これは小さなテキストファイルです」と印刷する小さなプログラムを取得する

現時点では、ハックっぽい Python スクリプトを使用しましたが、非常に見苦しく、変数名が 1 つだけに制限されています。別の方法を教えてください。

ベストアンサー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;

おすすめ記事