“#include"C 程序中的文本文件作为 char[] [英] "#include" a text file in a C program as a char[]

查看:26
本文介绍了“#include"C 程序中的文本文件作为 char[]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有办法在编译时将整个文本文件作为字符串包含在 C 程序中?

Is there a way to include an entire text file as a string in a C program at compile-time?

类似:

  • file.txt:

  • file.txt:

This is
a little
text file

  • main.c:

  • main.c:

    #include <stdio.h>
    int main(void) {
       #blackmagicinclude("file.txt", content)
       /*
       equiv: char[] content = "This is
    a little
    text file";
       */
       printf("%s", content);
    }
    

  • 获得一个在标准输出上打印的小程序这是一点文本文件"

    obtaining a little program that prints on stdout "This is a little text file"

    目前我使用了一个 hackish python 脚本,但它很丑,而且仅限于一个变量名,你能告诉我另一种方法吗?

    At the moment I used an hackish python script, but it's butt-ugly and limited to only one variable name, can you tell me another way to do it?

    推荐答案

    我建议使用 (unix util)xxd 为此.你可以像这样使用它

    I'd suggest using (unix util)xxd for this. you can use it like so

    $ 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;
    

    这篇关于“#include"C 程序中的文本文件作为 char[]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆