Объединить double из #define со строкой в ​​C - PullRequest
0 голосов
/ 09 марта 2020

В 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 *'.

. Отсюда я попытался преобразовать obj1 и obj2 в символы через printf(obj1, %f), однако это не дало никакого эффекта.

Как мне достичь цели объединения этих объектов в строку символов? Я очень мало знаю о C, поэтому извините, если что-то из этого неясно.

1 Ответ

4 голосов
/ 09 марта 2020
#define obj1 100

дает вам целое число, , которое вы не сможете использовать с strcat напрямую. Если вы хотите сделать это таким образом, вам придется использовать строку :

#define obj1 "100"

Однако вы можете сохранить то, что у вас есть, и просто заменить этот код гораздо более простым:

char fileName[1024];
sprintf(fileName, "%d_%d_outputOfCode.txt", obj1, obj2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...