Potrzebuję uzyskać aktualny czas w formacie "HH: MM: SS" do tablicy znaków (ciąg znaków), więc mogę wypisać wynik później prosto z printf("%s", timeString);
Czas na ciąg z HH: MM: Format SS (C-programowanie)
Jestem całkiem zdezorientowany na timeval
i time_t
typów btw, więc wszelkie wyjaśnienie byłoby super :)
EDIT: więc próbowałem z strftime itp, a to trochę pracował. Oto mój kod:
time_t current_time;
struct tm * time_info;
char timeString[8];
time(¤t_time);
time_info = localtime(¤t_time);
strftime(timeString, 8, "%H:%M:%S", time_info);
puts(timeString);
Ale wynik jest następujący: "13: 49: 53a? J`aS?"
Co się dzieje z "a? J`aS?" na końcu?
Ach, oczywiście. Dzięki stary! – o01
Zwykle stosuję podejście pesymistyczne i nadmiernie alokuję rozmiary buforów. Na przykład, zadeklaruję, że 'timeString []' ma być około 20 znaków. Pamięć jest tania, a my mówimy tu tylko o kilka dodatkowych bajtów. I to oszczędza, gdy później zdecydujesz się zmienić ciąg formatu, ale zapomnij zaktualizować długość bufora. –
+1 dla użycia 'sizeof()', aby umożliwić kompilatorowi przekazanie rozmiaru tablicy. –