【发布时间】:2012-10-27 03:47:47
【问题描述】:
我必须一个一个地打开文件才能用 C/C++ 阅读。文件名是in0、in1、in2、in3..... 我尝试使用预处理器指令来创建文件名。 我想要类似的东西。
for(int i=0;i<n;i++)
{
string inp_file="/path/"+"in"+APPEND(i); //to generate /path/in1 etc
open(inp_file);
}
其中 APPEND 是一个宏。 自从
#define APP(i) i
可以产生价值
#define APP(i) #i
可以将标记转换为字符串。
我试图以多种方式将它们结合起来但失败了。
如何获得所需的结果,或者甚至可以通过宏获得这样的结果?
【问题讨论】:
-
预处理器不能单独用于实现任何运行时功能。单独“用宏获得这样的结果”是不可能的。你所能做的就是将一些into-to-to-string转换函数包装到一个宏中,但是这样做并没有多大意义。
标签: c++ c c-preprocessor