从文本文件中读取格式说明符

Read format specifiers from text file

有没有办法从文本文件中读取格式说明符,例如 %s%d,然后在以后的 printf 的字符串变量中使用此说明符?

例如,如果我有一个文件包含

foo=%s

我可以做这样的事情吗?

FILE * f = fopen("/home/foo/bar", "r");

charn * s_buf = malloc(sizeof(charn) * 256);
fgets(s_buf, 255, f);
  
printf(s_buf, "bar");

并打印结果:

foo=bar

我知道它显然不能完全像这样工作,但我希望你明白我要做什么,也许知道做这样的事情的方法

您的代码是正确的,但您必须考虑如果文件包含 %d 而不是 %s 或任何其他必须显示的无效格式说明符会发生什么。

malloc() space 对于 s_buf 是正确的,但静态数组也可以。您以后不需要拨打 free(s_buf)。