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 :

Programme qui chronomètre une phrase entrée au clavier


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Programme qui chronomètre une phrase entrée au clavier
    bonjour, étudiant en 1ère année en informatique, j'ai à titre d'exercice (nous sommes actuellement dans le chapitre sur les boucles) de créer un programme qui doit me calculer le temps que je mets pour écrire une phrase.

    je n'ai pas de consignes supplémentaires, on a juste pas mal parler de la fonction time.
    j'ai déja compris que je dois placer un temps_initial=time(0) au moment ou je commence à tapper et un temps_final=time(0) à la fin et puis que mon temps final serait égal a temps_final-temps_initial. Logique me direz-vous

    mais j'aimerais que mon "chrono" se lance au moment ou l'utilisateur rentre la première lettre et qu'il s'arrête au moment ou un point (".") est rentré. sans devoir faire de enter ou quoi que ce soit. mais je ne sais pas comment faire
    je pense qu'on doit chipoter avec des getc(stdin) mais je n'arrive à rien.

    merci d'avance

  2. #2
    Expert éminent
    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 : 38
    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
    Points : 8 389
    Points
    8 389
    Par défaut
    Pour lire un caractère sans attendre la frappe de la touche entrée, on pourra utiliser la fonction _getch sous Windows ou toujours getchar sous *n*x, mais après avoir passé le terminal en mode brut. Tout cela est expliqué dans la FAQ. Sans utiliser des appels spécifiques au système, c'est tout simplement impossible. Le C voulant être un langage portable.

  3. #3
    Membre éclairé
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Points : 807
    Points
    807
    Par défaut
    Comme l'a très justement indiqué Melem, cela est dépendant du système d'exploitation utilisé ; il faut utiliser la couche inférieure pour parvenir à ces fins. Dans la pratique, il existe des utilitaires comme curses qui fonctionnent comme des wrappers de ce genre de formatage, portés sur la plupart des systèmes d'exploitation conventionnels. Cela t'évite de réinventer la roue, et augmente un peu la portabilité du modèle utilisé.

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    #include <ctype.h>
    #include <curses.h>
    #include <stdlib.h>
    #include <time.h>
     
    int 
    main(void) 
    {
      int c;
      time_t t1, t2;
     
      initscr ();
     
      do
        {
            c = getch ();
        }
      while (isalpha (c) == 0);
     
      time (&t1);
     
      do
        {
          c = getch ();
        }
      while (c != '.');
     
      time (&t2);
     
      mvprintw (1, 0, "Time elapsed: %.0fs.", difftime (t2, t1));
      mvprintw (2, 0, "Press <Enter> to quit.\n");
      refresh ();
     
      getchar ();
      endwin ();
     
      return EXIT_SUCCESS;
    }
    Maintenant, si c'est pour un exercice, cela te sera peut-être interdit.
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/03/2011, 13h16
  2. Réponses: 19
    Dernier message: 04/03/2008, 10h36
  3. récupérer une donnée entrée au clavier
    Par simouSQL dans le forum SQL
    Réponses: 7
    Dernier message: 26/06/2007, 14h50
  4. Récuération d'une variable qui contient une phrase
    Par lama85 dans le forum Langage
    Réponses: 1
    Dernier message: 23/08/2006, 13h52

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