c - 是否存在将文本文件转换为字符串文字作为构建步骤的任何内容?

标签 c string build build-process

我有多个文本文件,我希望在构建时将它们转换为包含字符串文字的源文件。

例如,如果 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/

相关文章:

Android Studio 不编译签名的 apk 文件

c - 关于在整数常量表达式中强制转换(在标准 C 中)

c - 返回指向结构指针数组的指针

swift - 从字符串中过滤非数字

当格式包含循环时,Java 检查特殊格式的字符串

gcc - Clang 3.4 stdlib.h 编译错误

c - i386 C 进程 - 剩余的 1 GB 可寻址空间发生了什么?

c - 转置C中的非方阵

c++ - 从文件读取错误(读取 0 或 ""值)

visual-studio - 使用 Installshield LE 包含标记为 "Copy to Output Directory"的文件