我有多个文本文件,我希望在构建时将它们转换为包含字符串文字的源文件。
例如,如果 hello.txt
包含以下文本:
Hello,
This is a text file.
我正在寻找类似这样的输出:
const char* HELLO_TXT = "Hello,\n\nThis is a text file.";
这样的东西已经存在吗,还是我必须自己推出?
最佳答案
有一个名为 xxd 的标准实用程序,它可以完成此操作( http://linux.die.net/man/1/xxd )。在编译之前将其添加为构建步骤之一。 -i 选项生成“C include”格式的文件的十六进制转储。因此,对于 hello.txt,thta 仅包含字符串“hello”,输出为
xxd -i hello.txt > hello.h
看起来像:
char *hello_txt = { 0x68, 0x65, 0x6c, 0x6c, 0x6f };
int hello_txt_len = 5;
然后,您可以将此文件 #include 到您的源代码中并访问 hello_txt 以获取文件的内容。请注意,该数组不是以 null 结尾的。
关于c - 是否存在将文本文件转换为字符串文字作为构建步骤的任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24482679/