tm struktur
-
Hallo Kollegen,
würde gerne auf Variablen der Struktur tm zurückgreifen, die in <ctime> hinterlegt ist. Leider bekomme ich immer eine Fehlermeldung, die ich mir bis jetzt nicht erklären kann.
#include <iostream> #include <ctime> #include <conio.h> using namespace std; int main() { time_t aktuelleZeit; time(&aktuelleZeit); tm now; now = localtime(&aktuelleZeit); cout <<"Stunden: "<< now.tm_hour; cout <<"Minuten: "<< now.tm_min; getch(); return 0; }
d:\C - Programme\tmstruktur\struktur.cpp(15) : error C2679: Binaerer Operator '=' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'struct tm *' akzeptiert (oder keine geeignete Konvertierung moeglich)
Danke!
-
bigbehrens schrieb:
Hallo Kollegen,
würde gerne auf Variablen der Struktur tm zurückgreifen, die in <ctime> hinterlegt ist. Leider bekomme ich immer eine Fehlermeldung, die ich mir bis jetzt nicht erklären kann.
#include <iostream> #include <ctime> #include <conio.h> using namespace std; int main() { time_t aktuelleZeit; time(&aktuelleZeit); tm now; now = localtime(&aktuelleZeit); cout <<"Stunden: "<< now.tm_hour; cout <<"Minuten: "<< now.tm_min; getch(); return 0; }
d:\C - Programme\tmstruktur\struktur.cpp(15) : error C2679: Binaerer Operator '=' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'struct tm *' akzeptiert (oder keine geeignete Konvertierung moeglich)
Danke!
Hallo Kollege,
ich weiss nicht, ob es das Problem löst, aber localtime ist deklariert als
struct tm *localtime(const time_t *time_tzgr)
gibt also einen Zeiger auf tm zurück.
Vielleicht so:
tm *now; ... now = localtime(&aktuelleZeit); ...
Ich weiss jetzt nicht, ob das in CPP auch so ist.
-
Hab ich ausprobiert,
aber irgendwir klappt es immernoch nicht. Jetzt sagt der Compiler:
--------------------Konfiguration: tmstruktur - Win32 Debug--------------------
Kompilierung läuft...
struktur.cpp
d:\C - Programme\tmstruktur\struktur.cpp(16) : error C2228: Der linke Teil von '.tm_hour' muss eine Klasse/Struktur/Union sein
d:\C - Programme\tmstruktur\struktur.cpp(17) : error C2228: Der linke Teil von '.tm_min' muss eine Klasse/Struktur/Union sein
Fehler beim Ausführen von cl.exe.tmstruktur.exe - 2 Fehler, 0 Warnung(en)
Auf was soll der Zeiger den jetzt zeigen? Ist durch die Deklaration des Zeigers automatisch auch eine Instanz der Struktur entstanden?
-
-> benutzen.
Ka, ob das mit time_t *now = localtime(&aktuelleZeit); richtig ist.
-
bigbehrens schrieb:
Hab ich ausprobiert,
aber irgendwir klappt es immernoch nicht. Jetzt sagt der Compiler:
Der Datenzugriff auf Member läuft bei einem Zeiger nicht mit dem . Operator, sondern mit dem -> Operator.
bigbehrens schrieb:
Auf was soll der Zeiger den jetzt zeigen? Ist durch die Deklaration des Zeigers automatisch auch eine Instanz der Struktur entstanden?
Die Struktur wird intern irgendwie, irgendwo gehalten, wie und wo genau sollte uns an dieser Stelle nicht interessieren. Könnte z.B. so aussehen:
struct tm *localtime(const time_t *clock){ static struct tm mytime; // static, damit die Struktur weiterlebt wenn Funktion verlassen wird mytime.tm_hour = 5; // ... return &mytime; // Adresse der Struktur zurückgeben
-
Hab das Problem jetzt mit Eurer Hilfe gelöst! Danke!