Я знаю, что этот вопрос задавали, но ответы, которые я просмотрел, на самом деле не относились к моему делу. В конце моей программы открывается куча файлов для записи. Я ограничил список только двумя для простоты. Переменная dirPath
— это аргумент командной строки, передаваемый при выполнении.
Вот что я попробовал в первую очередь:
FILE *fid_sensory_output;
FILE *fid_msn_output;
fid_sensory_output = fopen(strcat(dirPath,"sensory_output"), "w");
fid_msn_output = fopen(strcat(dirPath,"msn_output"), "w");
Это не работает, потому что strcat не возвращает копию объединенных строк, а вместо этого добавляет второй аргумент к первому. При поиске обходного пути я нашел эти рекомендации, чтобы использовать strcpy и strcat вместе или использовать sprintf.
Сначала я попробовал sprintf, но получил сообщение об ошибке, говорящее, что я пытался передать int
вместо ожидаемого char *
, хотя dirPath
объявлен как char *
. Я также безуспешно пытался передать строковый литерал.
Я пытался использовать strcat и strcpy разными способами, но безуспешно. Какие-либо предложения?