Problème avec le temps en langage C
aelegir
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je suis étudiant, et je doit travailler sur un programme en langage C.
j'ai réussi a accomplir tout ce qui était demandé et j'en suis maintenent aux extras de ce programme, mais une procédure ( ou une fonction) me pose probleme, la voici:
je doit demander à un des utilisateurs de rentrer un caractère, si jamais il met plus de 15 secondes a répondre, son tour est passé.
d'habitude j'ai toujours une inspiration pour commencer mais rien a faire, je ne vois pas comment tester le temps en meme temps que de faire un scanf, auriez vous quelques solutions a me proposer?
(sinon il me reste la solution de secour qui est d'évaluer le temps après qu'il est répondu et de ne pas tenir compte de sa réponse si il a mis plus de 15secondes a la donner mais je trouve cela un petit peu vache)
je suis étudiant, et je doit travailler sur un programme en langage C.
j'ai réussi a accomplir tout ce qui était demandé et j'en suis maintenent aux extras de ce programme, mais une procédure ( ou une fonction) me pose probleme, la voici:
je doit demander à un des utilisateurs de rentrer un caractère, si jamais il met plus de 15 secondes a répondre, son tour est passé.
d'habitude j'ai toujours une inspiration pour commencer mais rien a faire, je ne vois pas comment tester le temps en meme temps que de faire un scanf, auriez vous quelques solutions a me proposer?
(sinon il me reste la solution de secour qui est d'évaluer le temps après qu'il est répondu et de ne pas tenir compte de sa réponse si il a mis plus de 15secondes a la donner mais je trouve cela un petit peu vache)
A voir également:
- Problème avec le temps en langage C
- Renommer plusieurs fichiers en même temps - Guide
- Excel trier plusieurs colonnes en même temps - Guide
- Maps satellite en temps réel - Guide
- Temps pour soi iphone - Guide
- Combien de temps reste une story sur facebook - Guide
5 réponses
slt,
une solution simple est de récupérer le temps systeme au début de la procédure et le stocker, puis boucler tant que (le temps systeme courant - temps systeme stocké < 15secondes)&&(il n y a pas encore de caractéres reçu).
tu peux chercher sur google comment récupérer le temps systeme.
une solution simple est de récupérer le temps systeme au début de la procédure et le stocker, puis boucler tant que (le temps systeme courant - temps systeme stocké < 15secondes)&&(il n y a pas encore de caractéres reçu).
tu peux chercher sur google comment récupérer le temps systeme.
Salut !
Il n'y a pas vraiment de solution à cela, pas vraiment en console.
@ejjall : Ecris-nous ce code ! Ou explique précisément comment faire...
Je n'ai pas répondu du premier coup, mais avec la SDL c'est possible :
Une boucle infinie, et qui vérifie si le temps est passé, ensuite si une touche a été enfoncée, alors on réagit. Le problème c'est que c'est la librairie SDL, pas la console... Il faut que tu choisisses. Si tu veux le site officiel de la SDL et le tuto du sdz comprenant la partie SDL.
Je pense quand-même que si c'est possible avec la SDL, alors cela doit être possible avec une autre librairie. Mais je ne sais pas te répondre.
J'espère t'avoir aidé ;)
Il n'y a pas vraiment de solution à cela, pas vraiment en console.
@ejjall : Ecris-nous ce code ! Ou explique précisément comment faire...
Je n'ai pas répondu du premier coup, mais avec la SDL c'est possible :
Une boucle infinie, et qui vérifie si le temps est passé, ensuite si une touche a été enfoncée, alors on réagit. Le problème c'est que c'est la librairie SDL, pas la console... Il faut que tu choisisses. Si tu veux le site officiel de la SDL et le tuto du sdz comprenant la partie SDL.
Je pense quand-même que si c'est possible avec la SDL, alors cela doit être possible avec une autre librairie. Mais je ne sais pas te répondre.
J'espère t'avoir aidé ;)
je suis sur ubuntu, je compile avec gcc, donc voila je ne suis pas sous windows donc je vois pas trop comment faire.
sinon ejjall, j'ai déja pensé a ce que tu m'as dit et j'ai trouvé quelque chose qui s'en approche:
#include <stdio.h>
#include <time.h>
int main(void) {
char caractere;
time_t t0,t1;
printf("entrer une lettre\n");
time(&t0);
while((t1-t0)<15||scanf("%c"&caractere)!=1)
time(&t1);
return 0;
}
le seul probleme réside dans le fait que le scanf ne teste pas si il y a quelque chose dans le buffer, il attend juste que on lui rentre une valeur.
sinon ejjall, j'ai déja pensé a ce que tu m'as dit et j'ai trouvé quelque chose qui s'en approche:
#include <stdio.h>
#include <time.h>
int main(void) {
char caractere;
time_t t0,t1;
printf("entrer une lettre\n");
time(&t0);
while((t1-t0)<15||scanf("%c"&caractere)!=1)
time(&t1);
return 0;
}
le seul probleme réside dans le fait que le scanf ne teste pas si il y a quelque chose dans le buffer, il attend juste que on lui rentre une valeur.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question