コンパイル時にテキスト ファイル全体を文字列として 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;