如何在C编程中使用首选文件名命名我的txt文件?

问题描述 投票:0回答:1

[早上好,我是新生。我目前正在学习C编程。我拥有所有这些数据,并将它们打印到txt文件中,但该文件必须命名为Trip-dd-mm-yyy.txt

我对dd-mm-yyyy具有以下变量:

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?或将它们包含在字符串中?

如果这是一个不好的方法,什么是好的选择?非常感谢。

c file fopen
1个回答
1
投票

我建议snprintf,通过此功能,您还可以将文件名作为用户的输入,但是要注意不要传递数组的边界。

外观

    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"); 
© www.soinside.com 2019 - 2024. All rights reserved.