ďťż

Ładny brzuch

Takie pytanie... Mam plik, w którym podane są w takim formacie dane:

09-16-2005 09:07:43
09-16-2005 09:07:50
09-16-2005 09:07:52
09-16-2005 09:07:57
09-16-2005 09:07:57

itp.

I mam napisać program, który będzie obliczał ile razy w ciągu kolejnych pięciu minut zostały wpisane dane... Tylko jak zamienić datę na format, którym będę mógł spokojnie operować??
Jak rozwiązać ten problem?? Ale prosiłbym o nie pisanie całych programów... Chodzi mi tylko o ten jeden konkretny problem... :P



Może przekonwertować na string'i? A potem odwoływać się do konkretnej litery.
:)

Już o tym myślałem, ale trochę roboty będzie... No ale chyba sobie poradzę..:D

Może niezbyt eleganckie rozwiązanie, ale działa:
#include <stdlib.h> #include <stdio.h> struct element {  char czas[9];  struct element *next, *prev; }; int main(int argc, char **argv) {  struct element *poczatek, *act;  char tmp[11];  FILE *plik = fopen(argv[1], "r");  poczatek = malloc(sizeof(struct element));  fscanf(plik, "%s %s", tmp, poczatek->czas);  fgetc(plik);  act = poczatek;  act->next = NULL;  act->prev = NULL;  while (!feof(plik))  {    act->next = malloc(sizeof(struct element));    act->next->prev = act;    act = act->next;    fscanf(plik, "%s %s", tmp, act->czas);    fgetc(plik);    fgetc(plik);    act->next = NULL;  }  int ile = 0;  int godzina = (act->czas[0]-'0')*10+(act->czas[1]-'0');  int minuta = (act->czas[3]-'0')*10+(act->czas[4]-'0');  int sekundy = (act->czas[6]-'0')*10+(act->czas[7]-'0');  int roznica = 0;  int kiedy = godzina*3600 + minuta*60 + sekundy;  while (roznica < 300 && act->prev)  {    act = act->prev;    godzina = (act->czas[0]-'0')*10+(act->czas[1]-'0');    minuta = (act->czas[3]-'0')*10+(act->czas[4]-'0');    sekundy = (act->czas[6]-'0')*10+(act->czas[7]-'0');    roznica = kiedy - (godzina*3600 + minuta*60 + sekundy);    ile++;  }  printf("Plik zmieniono %i razy.\n", ile);  return 0; }

UWAGA: Nie uwzględnia zmiany dnia, ale to można dopisać analogicznie do sekund, minut i godzin.

UWAGA 2: Wypadałoby na końcu zwolnić pamięć dla listy. ;)

UWAGA 3: Nie ma obsługi błędnej zawartości pliku albo jego niepodania.
Użytkownik Chmurek edytował ten post 11 marzec 2006, 21:42
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •