Как я могу назвать свой текстовый файл с предпочтительным именем файла в C Программирование? - PullRequest
0 голосов
/ 02 апреля 2020

Добрый день, я новичок. В настоящее время я изучаю C Программирование. У меня есть все эти данные, и я должен напечатать их в текстовый файл, но файл должен иметь имя Trip-dd-mm-yyy.txt

У меня есть следующие переменные для дд-мм-гггг:

int month;
int day;
int year;

Допустим, ввод пользователя month = 12; day = 01; и year = 2000; Я планирую создать одну целую строку для имени файла, но с использованием strcat() объединение трех (3) строк.

FILE * pSource;
char filename[6] = "Trip-";
char fExtension[5] = ".txt";
char dateTrip[11] = "dd-mm-yyyy";

strcat(filename, dateTrip);      //and then just use strcat to combine all of them
strcat(filename, fExtension);

pSource = fopen(filename, "wt");  //and then use filename for fopen()
  .
  .    //then proceed to printing data in the txt file
  .

Это хороший подход? Если это так, моя проблема в том, как конвертировать int в char? или включить их в строку?

Если это плохой подход, что является хорошей альтернативой? Большое вам спасибо.

1 Ответ

1 голос
/ 02 апреля 2020

Я предлагаю snprintf, с помощью этой функции вы также можете принимать имя файла в качестве ввода от пользователя, но один момент - быть осторожным, чтобы не пропустить границы вашего массива.

look

    FILE* pSource;
    char filename[100];//make sufficient space for your file name
    int month=2;
    int day=4;
    int year=2001;
    int len=snprintf(filename, sizeof filename, "Trip-%02d-%02d-%4d.txt", month, day, year);
    if (len < 0 || (unsigned)len >= sizeof filename)
    {
        printf("error in filename");
          return 0;
    }

    pSource = fopen(filename, "wt"); 
...