[早上好,我是新生。我目前正在学习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?或将它们包含在字符串中?
如果这是一个不好的方法,什么是好的选择?非常感谢。
我建议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");