Ctime, sscanf

hi !

folgendes:

time_t ltime;
char *datum;
time( &ltime );
datum = ctime(&ltime);

datum zeigt auf:
„Mon Feb 28 19:28:53 2000“

frage:
wie schaffe ich es bloss diese Werte
mit sscanf auszulesen ?

vielen dank !!!
patrick

Hallo patrick

hi !

folgendes:

time_t ltime;
char *datum;
time(

struct tm *localtime(const time_t *timer);

dann hast du alles schön zerlegt als int.

oder mit

int resultat;
char Wochentag[4];
char Monat[4];
char Tag[3];
char Std[3];
char Min[3];
char Sek[3];
char Jahr[4];

Mon Feb 28 19:28:53 2000

resultat = sscanf( datum, „%s %s %s %s:%s:%s %s“, &Wochentag, &Monat, &Tag, &Std, &Min, &Sek, &Jahr);

oder wenn du nicht alles als strings willst

int resultat;
char Wochentag[4];
char Monat[4];
char Tag[3];
int Std[3];
int Min[3];
int Sek[3];
int Jahr[4];

Mon Feb 28 19:28:53 2000

resultat = sscanf( datum, „%s %s %s %d:%d:%d %d“, &Wochentag, &Monat, &Tag, &Std, &Min, &Sek, &Jahr);

Wenn „resultat“ den wert 7 bekommt ist alles OK.

MfG Peter

ctime, sscanf -Korrektur ?
Hallo Peter,
ich glaube die erste Funktion muß so lauten:

int resultat;
char Wochentag[4];
char Monat[4];
char Tag[3];
char Std[3];
char Min[3];
char Sek[3];
char Jahr[5]; /* 4 Stellen + 0-Byte */

Mon Feb 28 19:28:53 2000

resultat = sscanf( datum, „%s %s %s %s:%s:%s %s“, Wochentag, Monat, Tag,Std, Min, Sek,Jahr);

Der Adreß-Operator wird bei Strings nicht gebraucht.

Gruß
-Alex

Hallo Alex,
Du hast natürlich recht, ich war wohl schon etwas übernächtigt.
MfG Peter