7
votes

Temps dans la chaîne avec HH: MM: Format SS (programmation C)

J'ai besoin d'obtenir l'heure actuelle dans un "HH: MM: SS" -Format dans une matrice de caractères (chaîne) afin que je puisse émettre le résultat plus tard avec un printf ("% s", TIMESTRING) ;

Je suis assez confus sur le TIMEVAL et TIME_T Types BTW, de sorte que toute explication serait géniale :)

ÉDITER: J'ai donc essayé avec la Strftime, etc. et ça a travaillé un peu. Voici mon code: xxx

mais la sortie est la suivante: "13: 49: 53A ?? J`as?"

Que se passe-t-il avec le " A ?? J`as? " À la fin?


0 commentaires

3 Réponses :


5
votes

Jetez un coup d'œil au Fonction Strftime , ce qui vous permet d'écrire le temps dans un tableau de charret avec un format de votre choix.


0 commentaires

3
votes
#include <stdio.h>
#include <time.h>

/* get seconds since the Epoch */
time_t secs = time(0);

/* convert to localtime */
struct tm *local = localtime(&secs);

/* and set the string */
sprintf(timeString, "%02d:%02d:%02d", local->tm_hour, local->tm_min, local->tm_sec);
The important types for dealing with time (the wall-clock type of time, not process/thread time) are time_t and struct tm.
With some work you can convert between one and the other, but you have to pay attention to local time versus UTC time.Peruse the description of <time.h>, try the functions there until you grok time in C.Again, pay attention to UTC time and local time.

2 commentaires

Ne devons-nous pas faire ce que nous pouvons ne pas proliférer utiliser l'utilisation du sprintf sprintf () ?


Je suis un peu d'accord ... mais ... pas dans l'extrait cippet ci-dessus ... Ne devrions-nous pas faire ce que nous pouvons faire pour ne pas proliférer l'utilisation de l'ajout entier intrinsèquement non sécurisé?