将#define中的double与C中的字符串连接起来

Concatenate double from #define with string in C

在 C 中,我试图让输出文件名包含 2 个变量以便于识别。这些是通过 #define obj1 100#define obj2 5 早期启动的,当涉及到输出时,我希望文件名类似于 100_5_outputOfCode.txt.

为了让它工作,我尝试了

char fileName[1024];
strcpy(fileName, obj1);
strcat(fileName, "_");
strcat(fileName, obj2);
strcat(fileName, "_");
strcat(fileName, "outputOfCode.txt");

然后在输出函数中使用fileName(正常工作)。相反,我收到一条错误消息 ror: passing 'double' to parameter of incompatible type 'const char *'.

从这里开始,我尝试通过 printf(obj1, %f)obj1obj2 转换为字符,但这没有效果。

如何实现将这些对象连接成字符串的目标?我对 C 知之甚少,如果其中一些不清楚,请见谅。

#define obj1 100

给你一个 整数, 你将不能直接与 strcat 一起使用。如果您想那样做,则必须使用 string:

#define obj1 "100"

但是,您可以保留现有的代码,只需用更简单的代码替换该代码即可:

char fileName[1024];
sprintf(fileName, "%d_%d_outputOfCode.txt", obj1, obj2);