如何将时间转换为c中的ac字符串?

sky*_*oor 3 c arrays c-strings

我想在.c文件中写一些.txt文件,但需要用当前时间戳作为后缀来命名该文件,就像filename_2010_08_19_20_30一样.所以我必须首先定义文件名char数组并自己处理文件名?逐个分配字符?

有没有简单的方法呢?

Tyl*_*nry 9

存在一个被称为strftime存在的函数,其目的是将时间值写入人类可读的字符串中.文档:http://linux.die.net/man/3/strftime

一个例子:

#include <time.h>
#include <stdio.h>

int main()
{
   FILE* file;
   char filename[128];
   time_t now;
   struct tm tm_now;

   now = time(NULL);
   localtime_r(&now, &tm_now);

   strftime(filename, sizeof(filename), "filename_%Y_%m_%d_%H_%M.txt", &tm_now);

   file = fopen(filename, "w");

   fprintf(file, "Hello, World!\n");

   fclose(file);

   return 0;
}
Run Code Online (Sandbox Code Playgroud)