Problem bei der Anzeige der Zeit
-
Hallo.
Ich habe ein Problem. Ich habe folgende Funktion geschrieben:
int ZEIT(void) { time_t now; struct tm *p; char *sek[3], *min[3], *hour[3], *day[3], *wday[15], *month[3], *year[5]; time(&now); p = localtime(&now); strftime(sek , 3,"%S",p); strftime(min , 3,"%M",p); strftime(hour , 3,"%H",p); strftime(day , 3,"%d",p); strftime(wday ,15,"%A",p); strftime(month, 3,"%m",p); strftime(year , 5,"%Y",p); printf("\n%9s, %2s.%2s.%2s - %2s:%2s:%2s",wday,day,month,year,hour,min,sek); }
Und jetz hab ich das Problem, das mein IDE (Bloodshed Dev-C++) bei jedem
kompilieren diese Fehlermeldungen ausspuckt:In function 'ZEIT':
[Warning] passing argument 1 of 'strftime' from incompatible pointer type
[Warning] passing argument 1 of 'strftime' from incompatible pointer type
[Warning] passing argument 1 of 'strftime' from incompatible pointer type
[Warning] passing argument 1 of 'strftime' from incompatible pointer type
[Warning] passing argument 1 of 'strftime' from incompatible pointer type
[Warning] passing argument 1 of 'strftime' from incompatible pointer type
[Warning] passing argument 1 of 'strftime' from incompatible pointer typeIch denke, dass da was mit dem Zeiger nicht stimmt, aber sicher bin ich nicht.
Wäre nett, wenn mir jemand hilft!Grüße, Woolve
-
Ich denke es liegt an deinem Pointer auf Pointer, bzw. Pointer auf Array.
Versuch mal:char sek[3], min[3], hour[3], day[3], wday[15], month[3], year[5];
Gruß, Nite
-
Danke, Nite!
Hat geholfen.
Vielen Dank!Liebe Grüße, Woolve
-
Warum denn überhaupt den Umweg über Strings gehen? Warum nicht direkt die struct-Member dem printf() als Argumente übergeben?
Und warum soll die Funktion überhaupt ein int zurückgeben wenn du das nicht explizit angibst?
-
Du meinst so sachen wie "tm_wday" oder so?
Stimmt, könnt ich auch machen. danke für den Tipp.
Muss ich dann den struckturvariablen noch extra namen
geben oder geht das auch so?
-
Jo. [i]tm[/] ist ja eine Struktur. Deren Member haben logischerweise auch Namen. Welche das alle sind musst du in der Doku nachlesen.