Dav*_*vid 4 c c++ c-preprocessor
我正在努力实现这一目标:
char * fname = "results5.txt"
使用这样的宏:
#define FILENAME(NUM) "results" NUM ".txt"
int number = 5;
char * fname = FILENAME(number);
Run Code Online (Sandbox Code Playgroud)
有可能这样做吗?怎么了?谢谢。
由于您标记了 C 并想要基于宏的解决方案,因此#在宏中使用 a
#define FILENAME(NUM) "results"#NUM".txt"
^^^^^
char *fname = FILENAME(5);
Run Code Online (Sandbox Code Playgroud)
小心这种方式你不能使用变量。
int number = 5;
char *fname = FILENAME(number); // IMPOSSIBLE
Run Code Online (Sandbox Code Playgroud)
否则,要使用变量,您应该使用函数。
让一切变得更容易
std::string FileName(int d)
{
return "results"+ std::to_string(d) +".txt";
// or...
// std::ostringstream str;
// str << "results" << d << ".txt";
// return str.str();
}
...
int number = 5;
std::string filename = FileName(number);
Run Code Online (Sandbox Code Playgroud)