00Andre Temat założony przez niniejszego użytkownika |
[C++] Problem z struct * tm do time_t » 2014-04-03 13:17:58 Siemka ;D Mam kolejny mały problem, więc mam problem z przerobieniem strukturę tm do time_tSzukałem w internecie informacji o tym, i znalazłem , aby to wykonać za pomocą funkcji mktimeZnalazłem też przykład jak to wykonać i zrobiłem swoją wersje tego i nie działa. Zmienne są przed tym ustawione i wiadome więc z tym nie ma problemu !
Oto kod z tym użyciem :
time( & element.czas_wyczytany ); element.struktura_wyczytana = localtime( & element.czas_wyczytany ); element.struktura_wyczytana->tm_wday = element.dzien_tygodnia; element.struktura_wyczytana->tm_mon = element.miesiac + 1; element.struktura_wyczytana->tm_mday = element.dzien_miesiaca + 1; element.struktura_wyczytana->tm_hour = element.godzina + 1; element.struktura_wyczytana->tm_min = element.minuty; element.struktura_wyczytana->tm_sec = element.sekundy; element.struktura_wyczytana->tm_year = element.rok;
mktime( element.struktura_wyczytana );
cout << ctime( & element.czas_wyczytany )
A wynik jest tego, że data wpisana w strukturę nie jest taka sama jak ma być
Wed Apr 02 13:14:05 2014
// A ma byc Mon Mar 12 07:07:54 2014
00Andre |
|
Adik80 |
» 2014-04-03 14:43:12 moze powinienes wynik z mktime zapamietac i uzyc jako prametr w ctime |
|
00Andre Temat założony przez niniejszego użytkownika |
» 2014-04-03 23:17:13 Spróbowałem zrobić jak mówiłeś tak time_t czas;
czas = mktime( element.struktura_wyczytana );
cout << ctime( & czas );
Po skomplikowaniu kodu nie wyświetla nic. Edit. A wpisanie jako parametr do ctime mktime( element.struktura_wyczytana ) pokazuje błąd, error: invalid conversion from 'time_t {aka long int}' to 'const time_t* {aka const long int*}' [-fpermissive]|
00Andre |
|
pekfos |
» 2014-04-04 08:57:01 Nie nazywaj zmiennych podobnie, jeśli robi to problemy. Jak widać - robi. Ogólnie ten kod robi jedno wielkie nic. Wywal go, przeczytaj, jak działają użyte tam funkcje, i napisz go od nowa. time( & element.czas_wyczytany );
cout << ctime( & element.czas_wyczytany ) Można wywalić większość tego kodu i nic się nie stanie.. |
|
Adik80 |
» 2014-04-04 11:17:14 skoro ctime nic nie wypisuje tzn ze mktime nie dalo rady przkonwertowac daty, czyli masz smieci w tm |
|
00Andre Temat założony przez niniejszego użytkownika |
» 2014-04-04 11:39:03 Pekfos Mi bardzo ułatwia nazywanie zmiennych dokładnie, i mi to nie robi żadnego problemu ;D Druga sprawa robiłem tak samo jak był przykład z strony http://www.cplusplus.com/reference/ctime/mktime/. Po trzecie datę muszę wyczytać z pliku, a to jest w stringu i program analizuje i wyczytuje dane z stringa i potem chce wypełnić strukturę tm danymi wyczytanymi z string'a i ustawić do time_t. A inaczej nie można wypełnić strukturę tm oprócz mktime i przykładem z strony. Adik80 Nie mam żadnych śmieci ustawionych. są to normalne ustawione zmienne int. I w ogóle nie przekraczają żadnych zakresów wartości dla danej zmiennej struktury. 00AndrePs Wyczytanie i analizowanie stringa z datą mam zrobione i wartości wszystko są dobrze, jedynie są problemy z strukturą tm przerobić do time_t. Edit Ten kod co uważasz za nie potrzebny musi być, robiłem jak na przykładzie, i ten kod przypisuje wyczytane wartości z string'a i ustawione do int w daną zmienną struktury. Edit Nazwałem time_t czas_wyczytany Ponieważ wyczytuje z string'a datę i chce potem strukturę tm wypełnioną przerobić na time_t. A ten czas_wyczytany chce potem używać w projekcie. |
|
Adik80 |
» 2014-04-04 12:19:33 Zobacz sobie pod debugerem jakie maasz wartosci w tm, bo dla poprawnych wartosci to poiwnno zadizialac: int main() { tm stm = { 54, 07, 07, 12, 2, 114 }; time_t tim = mktime( & stm ); std::cout << ctime( & tim ); return 0; } |
|
00Andre Temat założony przez niniejszego użytkownika |
» 2014-04-04 18:42:55 Działa twój sposób Adik80, w moim co miałem przepisać to też działał, ale źle miałem rok przypisany. Miałem 2014 zamiast 114. W kursach nigdzie nie piszę , aby tak zapisywać roku jak ty napisałeś w swoim przykładzie.
Będziesz napisany w programie ;)
00Andre |
|
« 1 » 2 |