Tôi cần lấy thời gian hiện tại theo dạng "HH: MM: SS" thành mảng ký tự (chuỗi) để tôi có thể xuất kết quả sau đơn giản với một printf("%s", timeString);
Thời gian thành chuỗi với HH: Định dạng MM: SS (lập trình C)
tôi khá bối rối trên timeval
và time_t
loại btw, vì vậy bất kỳ lời giải thích sẽ là tuyệt vời :)
EDIT: vì vậy, tôi cố gắng với strftime vv, và nó kinda làm việc. Đây là mã của tôi:
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);
Nhưng đầu ra là: "13: 49: 53a ?? J`aS?"
Điều gì đang diễn ra với "a ?? J`aS?" ở cuối?
Ah, tất nhiên rồi. Cảm ơn anh bạn! – o01
Tôi thường sử dụng phương pháp bi quan và phân bổ kích thước bộ đệm quá mức. Ví dụ, tôi muốn khai báo 'timeString []' thành 20 ký tự. Bộ nhớ rẻ và chúng tôi chỉ nói thêm vài byte ở đây. Và nó giúp bạn tiết kiệm khi bạn quyết định thay đổi chuỗi định dạng nhưng quên cập nhật độ dài bộ đệm. –
+1 để sử dụng 'sizeof()' để cho trình biên dịch vượt qua kích thước của mảng. –