Добавление даты в файл - C - PullRequest
1 голос
/ 09 июля 2011

Я пишу сетевую игру на C. Я записал результаты в файл.Я также хотел добавить дату дня.Вот структура файла: Дата Имя Оценка и код:

ScoreFile = fopen("scores.txt", "a");
fprintf(ScoreFile, "%s %d\n", Name, Score);

Я пробовал систему («дата»), но она напечатана на стандартный вывод.Я думаю, что я не могу добавить дату с помощью fprintf.

Знаете ли вы решение, позволяющее добавить дату в файл?(может что-то из time.h?)

спасибо большое !!

Ответы [ 4 ]

1 голос
/ 09 июля 2011

Взгляните на strptime , strftime и mktime от time.h.

Для разбора:

struct tm timeStruct = {0,0,0,0,0,0,0,0,0};
char *timeBuf = "03061983";
char *p = strptime(timeBuf, "%d%b%y", &timeStruct);

if (p != NULL)
{
    // manipulate timeStruct.
    // use mktime to get the time_t value
}

Написать:

  time_t t;
  struct tm * timeStruct;
  char timeBuf[6];

  time(&t);
  timeStruct = localtime(&t);

  strftime (timeBuf, 6, "%d%b%y", timeStruct)

С уважением,
Юсуф

1 голос
/ 09 июля 2011

Попробуйте использовать strftime для преобразования временной структуры в строку.

Пример (по ссылке выше):

#include <time.h>
// ...

char s[30];
size_t i;
struct tm tim;
time_t now;
now = time(NULL);
tim = *(localtime(&now));
i = strftime(s,30,"%b %d, %Y; %H:%M:%S\n",&tim);

ставит Jul 9, 2011; 17:55:55\n в s

1 голос
/ 09 июля 2011

Простейшим будет:

time_t now = time(NULL);
fprintf(ScoreFile, "[%s] %s %d\n", ctime(&now), Name, Score);
1 голос
/ 09 июля 2011

Примерно так должно работать

time_t now;
time(&now);

printf("... %s\n", ctime(&now));

Если вам нужно указать свой собственный формат, посмотрите strftime.Если вам позже потребуется прочитать и проанализировать его, возможно, лучше записать количество секунд с начала эпохи (time_t, возможно, в ASCII?).

...