Necesito obtener la hora actual en un formato "HH: MM: SS" en una matriz de caracteres (cadena) para que pueda dar salida al resultado más tarde simplemente con un printf("%s", timeString);
Tiempo en cadena con formato HH: MM: SS (programación C)
estoy bastante confusa en los timeval
y time_t
tipos cierto, por lo que cualquier explicación sería impresionante :)
EDIT: así que traté con strftime etc, y poco trabajado. Aquí está mi código:
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);
Pero el resultado es este: "13: 49: 53a? J`aS?"
¿Qué está pasando con "a ?? J`aS?" al final?
Ah, por supuesto. Gracias amigo! – o01
Por lo general, tomo el enfoque pesimista y asignar demasiados tamaños de búfer. Por ejemplo, declararía que 'timeString []' tiene 20 o más caracteres. La memoria es barata, y solo estamos hablando de algunos bytes adicionales aquí. Y lo guarda cuando más tarde decide cambiar la cadena de formato, pero se olvida de actualizar la longitud del búfer. –
+1 para el uso de 'sizeof()' para permitir que el compilador pase el tamaño de la matriz. –