• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

strftime in c

byron1778

Hacker
Hallo Forum,

ich bin gerade dabei mich in C einzuarbeiten, habe aber bei dieser an sich leichten Aufgabe meine Probleme.

Ich möchte mir mittels strftime das Datum in einer bestimmten Form ausgeben lassen, was aber natürlich bei mir nicht funktioniert.

Folgendes habe ich versucht:

Code:
#include <time.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/timeb.h>
#include <string.h>

void main()
{
    char tmpbuf[128];
    struct tm *today;
 
    strftime( tmpbuf, 128,
         "Today is %A, day %d of %B in the year %Y.\n", today );
    printf( tmpbuf );
}

bzw habe ich es auch so versucht:

Code:
#include <time.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/timeb.h>
#include <string.h>

void main()
{
    char tmpbuf[128];
    struct tm *today;
 
    strftime( tmpbuf, 128,
         "Today is %A, day %d of %B in the year %Y.\n", today->tm_hour );
    printf( tmpbuf );
}

Leider jedoch mit dieser Fehlermeldung:

C:\Programme\Microsoft Visual Studio\MyProjects\zweites_projekt\zweites_projekt.cpp(13) : error C2664: 'strftime' : Konvertierung des Parameters 4 von 'int' in 'const struct tm *' nicht moeglich
Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
Fehler beim Ausführen von cl.exe.

Kann mir jemand vielleicht sagen, wie es richtig geht?
bzw. wo kann man Literatur finden, welche einem die Parameter der Befehle erklärt und wie man diese genau verwendet (für die ganz Dummen!).
Die Hilfe vom MS Visual C++ ist nicht immer einfach zu verstehen!

Danke für die Hilfe,

mfg
Byron
 

Mumie

Hacker
Hallo,
hier findest du ein paar Beispiele:

http://www.galileocomputing.de/openbook/c_von_a_bis_z/c_021_000.htm#Xxx999436

Das Beispiel time6.c dürfte deinen Wünschen entsprechen. Es läuft auf jeden Fall mit Suse 10.0.
 
OP
B

byron1778

Hacker
Hallo,

danke Dir, es wird nun etwas klarer das Ganze.
Bei einer Sache kenne ich mich noch nicht aus.

Es gibt ja die Datentypen: int, char, short, double usf.
Aber dann dürfte es auch size_t und co. geben.

Wie werden diese Datentypen eingesetzt bzw. was liefern diese Datentypen eigentlich zurück?

printf ist zB: so definiert: int printf(...);
bedeutet, dass printf einen ganzzahligen Wert zurückliefert, aber wie sieht das bei size_t und den anderen Datentypen aus?

Danke für die Hilfe!

Mfg
Byron
 
Da für float und double kaum typedefs angelegt werden, sind die meisten entweder integrale Typen oder Strukturen (aggregate values).
 
OP
B

byron1778

Hacker
Danke Dir für die Antwort.
Leider aber habe ich es irgendwie nicht ganz verstanden (gerade erst dabei mich mit diesen Datentypen zu befassen!).

Gibt es dazu irgendwo eine Erläuterung vielleicht bzw. kannst Du es präzisieren?

Danke

Mfg
Byron
 
Oben