3

.cファイルの.txtファイルに何かを書きたいのですが、filename_2010_08_19_20_30のように、現在のタイムスタンプを接尾辞としてそのファイルに名前を付ける必要があります。したがって、最初にfilename char配列を定義し、ファイル名を自分で処理する必要がありますか?文字を1つずつ割り当てますか?

それを行う簡単な方法はありますか?

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 に答える