0

gcc 用の C プログラミング言語 (Linux および Windows XP の下) には、いくつかの情報を出力する関数があります。

pdter( 1 ) gives 2013 (integer)
pdter( 2 ) gives 3 (for march) (integer)
pdter(3) gives 3 for day (integer)
pdter 4 for hours, 5 for min, and 6 for seconds

次のようなcharの配列があります。

char newfilename[PATH_MAX];

私は最終的に次のようなchar配列を持ちたいと思います:

newfilename of content (array) (date and time) : "20130303204301-image.bmp" 
(format yyyymmddhhmmss-imagename.ext)  

何度も検索した後、私はエネルギーがなくなっています。何か助けていただけますか?

それはとても素晴らしいでしょう!

4

1 に答える 1

0

試す

char newfilename[PATH_MAX];
char *imagename = TBD;
#define MAXINTLENGTH (11 /* TBD -2147483648 */) 
// Insure our sprintf does not overrun
if (6*MAXINTLENGTH + 1 + strlen(imagename) + 1) > PATH_MAX]) {
  handle potential error;
}
int t[6];
int seconds;
// Try once or twice to get all time elements and insure the second has not changed whilst doing so
for (int attempt = 1; attempt < 2; attempt++) {
  seconds = pdter(6);
  for (int i=0; i<6; i++) t[i-1] = pdter(i+1);
  // If we read all time elements and the second did not change, break;
  if (seconds == t[5]) break;
  // Try again
}
sprintf(newfilename, "%04d%02d%02d%02d%02d%02d-%s", t[0], t[1], t[2], t[3], t[4], t[5], imagename);
// We are done
于 2013-05-24T05:19:20.767 に答える