c язык, как создать строку с входами и именем файла динамически - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть такой код c,

foo.c

int a;
int b;
int c;
FILE *fd;
int main(int argc, char * argv[]){
    a = atoi(argv[1]);
    b = atoi(argv[2]);
    c = atoi(argv[3]);
    char *temp = "_%d_%d_%d", (a,b,c); // I do not know how to create this string
    char *fileName = (char*) malloc(500*sizeof(char));
    sprintf(fileName, "bar%s.txt", temp);
    fd = fopen(fileName, 'w');
    return 0;
}

, тогда, если я передам аргумент после компиляции,
./foo 11 13 15 Я ожидаю имя файлакак bar_11_13_15.txt, так как я создаю строковую переменную с аргументом командной строки.Как я могу создать строку (или символ []) и передать ее в имя файла?

1 Ответ

0 голосов
/ 24 сентября 2018
#include <stdlib.h>
#include <string.h>

int main(int argc, char * argv[])
{
    if (argc < 4)  // make sure there are enough arguments
        return EXIT_FAILURE;

    int a = atoi(argv[1]); // dont
    int b = atoi(argv[2]); // use
    int c = atoi(argv[3]); // globals!

    char fileName[500];
    snprintf(fileName, sizeof fileName, "bar_%d_%d_%d.txt", a, b, c);
    FILE *fd = fopen(fileName, "w"); // mind the quotation marks
}
...