3

我想在 .c 文件中的 .txt 文件中写入一些内容,但需要以当前时间戳为后缀命名该文件,就像 filename_2010_08_19_20_30 一样。所以我得先定义文件名char数组,自己处理文件名?把字符一个一个赋值?

有什么简单的方法可以做到这一点吗?

4

3 回答 3

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;
}
于 2010-08-19T13:58:04.320 回答
2
  time_t timet;
  struct tm * timeinfo;
  char buffer [32];

  time (&timet);
  timeinfo = localtime(&timet);

  strftime(buffer,32,"_%Y_%m_%d_%H_%M",timeinfo);
于 2010-08-19T14:02:48.567 回答
1

查看 strftime 函数:

http://www.cplusplus.com/reference/clibrary/ctime/strftime/

于 2010-08-19T13:59:15.783 回答