我需要将当前时间以“HH:MM:SS”格式获取并存储在字符数组(字符串)中,以便稍后可以通过printf("%s", timeString);
输出结果。
对于timeval
和time_t
类型,我感到相当困惑,希望能够得到解释。
编辑:我尝试使用strftime等函数,它有点起作用。这是我的代码:
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);
但是输出结果是这样的:"13:49:53a??J`aS?"。
最后的"a??J`aS?"是什么情况?
timeString []
为20个或更多字符。内存很便宜,我们只谈论几个额外的字节。当您稍后决定更改格式字符串但忘记更新缓冲区长度时,这可以为您节省时间。 - David R Tribblesizeof()
让编译器传递数组的大小。 - Randall Cook