从文本文件中读取格式说明符
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)。
有没有办法从文本文件中读取格式说明符,例如 %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)。