我正在寻找一种将文件内容用作硬编码字符串常量的简单方法。
当然,我可以将文件内容复制/粘贴到 andefine
中,但这需要我将\
s 放在每行的末尾和每行的前面"
。
我试图constexpr
让预编译器加载文件,但要么我做错了(我不熟悉constexpr
),要么不可能那样做。
这是我尝试过的:
constexpr const char* loadFile()
{
std::string retVar;
std::ifstream file("filename.txt");
retVar = std::string((std::istreambuf_iterator<char>(file)),
std::istreambuf_iterator<char>());
return retVar.c_str();
}
#define FILE_CONTENT = loadFile();
我得到错误:
error: body of constexpr function 'constexpr const char* loadFile()' not a return-statement
也许有人可以修改我的代码以按预期工作,或者也许有人有一种全新的方式来实现我的目标。
我知道我可以简单地编写一个脚本来读取文件的内容并将其转换为,#define
但我想在没有额外的预构建步骤的情况下这样做。
编辑: 如何将文件嵌入到可执行文件中?专注于嵌入二进制文件。我只想将文本文件的内容用作硬编码字符串。建议的方法对于我想做的事情来说太重了。