IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Actualisation de l'heure


Sujet :

C

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Finlande

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 24
    Par défaut Actualisation de l'heure
    bonjour tout le monde
    j'ai écris une fonction qui me renvoie la date + heure que j'utilise dans des printfs partout dans mon code mon problème c'est que dans le "header" de mon programme je veux afficher l'heure et l'actualiser genre l'horloge windows mais j'ai pas réussis .
    * est ce que quelqu'un peut m'aider la dessus ?
    Merci d'avance

  2. #2
    Membre actif
    Homme Profil pro
    etudiant ingénieur
    Inscrit en
    Novembre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : etudiant ingénieur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 40
    Par défaut rep
    ce code permet de rendre la date et le temps reel de ta machine sous forme d'une chaine de cacartere :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        #include <time.h>
        #include <stdio.h>
        time_t ti,*nows;
        char *string=(char*)malloc(30*sizeof(char));
        struct tm* now;
        ti=time(nows);//calcule le nombre de  sconde depui 1970 date de //creation   de Unix
        now=localtime (nows);
        string=asctime(now);
        printf("la date actuelle est :%s ",string);
    coordinalement

  3. #3
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Ce code est faux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        char *string=(char*)malloc(30*sizeof(char));
    ....
        string=asctime(now);
    A quoi sert d'allouer dynamiquement un tableau de 30 char pour que quelques lignes plus loin on écrase l'adresse obtenue ? A faire une fuite de mémoire ?

    La fonction asctime() renvoie l'adresse d'une chaine statique et il n'est pas besoin de l'allouer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char * string=asctime(now);

  4. #4
    Membre actif
    Homme Profil pro
    etudiant ingénieur
    Inscrit en
    Novembre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : etudiant ingénieur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 40
    Par défaut rep
    desole de vous contre dire que ce cose et juste et je vous invite à le teste et apres on pourra bien desscute sur .

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 81
    Par défaut
    The asctime() function converts the broken-down time value tm into a string with the same format as ctime(). The return value points to a statically allocated string which might be overwritten by subsequent calls to any of the date and time functions.
    D'après la description de la fonction, asctime retourne un pointeur sur une chaine statique. Donc pas d'allocation nécessaire.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Finlande

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 24
    Par défaut
    rebonjour
    Merci déjà pour vos réponse mais j pas un problème de date et heure j déjà écris un bout de code qui fait cela mais je veux savoir si il existe un moyen pour l'actualiser sa veut dire que sa change tout seul

  7. #7
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par sam1507 Voir le message
    D'après la description de la fonction, asctime retourne un pointeur sur une chaine statique. Donc pas d'allocation nécessaire.
    Sinon faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    char *string = (char*)malloc(30 * sizeof(char));
    ...
    strcpy(string, asctime(now)); /* Nous supposons donc "string" assez grand pour contenir la chaine. */
    ...
    free(string);
    Citation Envoyé par youssef_the_king
    desole de vous contre dire que ce cose et juste et je vous invite à le teste et apres on pourra bien desscute sur.
    Oui, "ça marche", mais dans ton exemple :

    1. malloc n'était pas nécessaire.
    2. tu écrases l'adresse contenue dans string, qui est une adresse retournée par malloc, par une autre sans avoir appelé free avant => fuite de mémoire comme te l'a di diogene.

    Donc soit tu n'appelles pas malloc, soit tu utilises alors strcpy après.

  8. #8
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par tychus Voir le message
    rebonjour
    Merci déjà pour vos réponse mais j pas un problème de date et heure j déjà écris un bout de code qui fait cela mais je veux savoir si il existe un moyen pour l'actualiser sa veut dire que sa change tout seul
    Pour cela tu dois avoir accès à des fonctions permettant de changer la position du curseur. A chaque fois que tu dois actualiser l'heure, tu déplaces alors le curseur à l'endroit où tu affiches l'heure puis tu actualises. La gestion du curseur n'est pas une fonction supportée en standard en C, tu devras donc faire appel à ton système ou à une bibliothèque spécialisée. Laquelle de ces solutions préfères-tu ?

  9. #9
    Membre actif
    Homme Profil pro
    etudiant ingénieur
    Inscrit en
    Novembre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : etudiant ingénieur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 40
    Par défaut rep
    donc d apres ce tu as decri vous n avez pas besion seulement de la date et l heur mais une sort d'horloge dans la tete de ton programme d apres ce que j ai compris je propose ce code qui simule un peux pres l horloge .
    je dois savoire ce que ton programme fait ( est-ce une sorte des menu,ou bien une seul boucle,...) pour rendre ce programme compatible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
        #include <stdio.h>
        #include <conio.h> 
        #include <time.h> 
     
        void wait(long sec);
        {
        long start, courante;
        time(&start) ;
        time(&courante) ;
        while((courante-start)<sec)
        {
        time(&courante) ;
        }
        }
     
        void main(void)
        {
        system("cls");
        time_t t ;
        printf(" date et l'heure :") ;
        while(!kbhit()) // Tant qu'aucune touche n'est enfoncée
        {
        time(&t) ;
        printf("%s", ctime(&t)) ;
        wait(1) ;// Attente = 1 seconde
        }
        getch() ; // Vidage du tampon (à cause de kbhit)
        }
    simulation d'une horloge

Discussions similaires

  1. Actualiser un tableau à heure ou a jour fixe
    Par Dicas dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/12/2013, 18h35
  2. [débutant] Actualiser l'heure dans une textbox
    Par blacknight dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 03/05/2010, 23h30
  3. [Dates] fonction date et heure toujours actualisée
    Par Levava dans le forum Langage
    Réponses: 3
    Dernier message: 01/06/2008, 13h43
  4. [Affichage date/heure] Actualisation ?
    Par razorlok dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/05/2008, 11h09
  5. Réponses: 7
    Dernier message: 10/04/2007, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo