Comment mettre l'heure système dans son programme en #C ?

Résolu/Fermé
TR4NS1T Messages postés 49 Date d'inscription dimanche 19 février 2017 Statut Membre Dernière intervention 17 janvier 2018 - Modifié par STARGATE43 le 22/02/2017 à 01:28
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 23 févr. 2017 à 09:43
Bonjour,
Bon, comme le dit le titre , je voulais savoir comment mettre l'heure system dans mon programme ; je suis sur linux et j'utilise gedit pour m'exercer dans mes programmes et je voudrais savoir si possible bien sur comment afficher l'heure du system dans ma console lorsque j'execute le programme. J'aimerai choisir l'emplacement de l'affichage et tout et tout. MERCI :) #LABISE.
A voir également:

1 réponse

[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
Modifié par [Dal] le 23/02/2017 à 10:15
Salut,

Puisque tu utilises déjà les codes d'échappement ANSI pour mettre en couleurs ton texte sur le terminal Linux, tu peux continuer en utilisant f pour forcer la position du curseur avant d'écrire à l'écran.

http://www.termsys.demon.co.uk/vtansi.htm#cursor

Alternativement, comme le positionnement du curseur à des coordonnées n'est pas une fonctionnalité du C standard, tu peux utiliser une bibliothèque comme ncurses (comme déjà indiqué pour la couleur dans ce post). Cela rendra ton code plus portable sur toutes les plateformes supportées par ncurses.

Pour la récupération de la date et son affichage, tu peux, en revanche, utiliser des fonctions standard (time, localtime et strftime, par exemple). Vois leurs pages de manuel.

Cela donne un truc comme cela :

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

int main(void) {
    time_t rawtime;
    struct tm * timeinfo;
    char buffer[80];

    time(&rawtime);
    timeinfo = localtime(&rawtime);
    /* préparer une chaîne avec l'heure au format 24 heures
     * et les codes d'échappement ANSI pour placer le curseur
     * à la ligne 12 et la colonne 34
     */
    strftime(buffer,80,"\x1b[12;34fIl est %H:%M",timeinfo);
    printf("%s\n", buffer);

    return 0;
}

Tu peux même te faire une macro GOTOXY avec des paramètres, ou une fonction gotoxy(), pour ce faire. Note que, dans le code d'échappement, le premier chiffre après le crochet est la ligne (y), et le second la colonne (x).


Dal
3