c++ - 如何在构建时将文件内容获取到我的 C++ 字符串中?

标签 c++ string include

我有一个正在用 C++ 编译的文件,我希望在其中有一个字符串,其值是编译时文件的内容。

换句话说,我想 #include 文件,但要用双引号括起来。

我如何在 C++ 中执行此操作?

现在,如果该文件包含双引号作为其文本的一部分,我该如何将其转义?

最佳答案

您可以使用xxd -i/tmp/your_file >/tmp/your_file_as_string.c

这将为您定义一个字符串文字:

$ cat /tmp/your_file_as_string.c
unsigned char _tmp_inc[] = {
  0x2e, 0x2f, 0x42, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x6e, 0x65, 0x78, 0x74,
  0x4f, 0x6f, 0x6c, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f,
  ...
  0x74, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x65, 0x63,
  0x0a
};
unsigned int _tmp_inc_len = 1513;

现在您可以使用该定义的字符串了。

关于c++ - 如何在构建时将文件内容获取到我的 C++ 字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2838542/

相关文章:

java - jsp用Struts2包含另一个jsp,但没有结果

c++ - 访问 QList 中的派生类时的最佳实践

c++ - 在预分配内存中创建对象

java - 为什么我们在 charAt(i) 旁边使用 -'0'?

c++ - 奇怪的字符串初始化

c++ - UTF-8 表示形式和 unicode 表示形式之间的字符串转换

c++ - 使用寄存器交换值

c++ - 在指针上执行运算符而不取消引用

c++ - 跳过每三个数字

c++ - 需要快速帮助 基类未定义