Problème avec le temps en langage C
Fermé
aelegir
-
9 févr. 2011 à 14:12
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 13 févr. 2011 à 23:33
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 13 févr. 2011 à 23:33
A voir également:
- Problème avec le temps en langage C
- Renommer plusieurs fichiers en même temps - Guide
- Langage binaire - Guide
- Combien de temps reste une story sur facebook - Guide
- Maps satellite en temps réel - Guide
- Ss06 snapchat combien de temps - Forum Snapchat
5 réponses
ejjall
Messages postés
6
Date d'inscription
mercredi 9 février 2011
Statut
Membre
Dernière intervention
10 octobre 2012
1
9 févr. 2011 à 16:12
9 févr. 2011 à 16:12
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.
Bilow
Messages postés
1014
Date d'inscription
samedi 21 août 2010
Statut
Membre
Dernière intervention
2 août 2015
117
9 févr. 2011 à 22:10
9 févr. 2011 à 22:10
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é ;)
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
9 févr. 2011 à 22:14
9 févr. 2011 à 22:14
La SDL ? Carrément ? lol.
Sur Windows, tu as la fonction _kbhit dans <conio.h> qui va te permettre de réaliser ton besoin. Demande, si tu souhaites sur un autre système d'exploitation.
Cdlt,
Sur Windows, tu as la fonction _kbhit dans <conio.h> qui va te permettre de réaliser ton besoin. Demande, si tu souhaites sur un autre système d'exploitation.
Cdlt,
Bilow
Messages postés
1014
Date d'inscription
samedi 21 août 2010
Statut
Membre
Dernière intervention
2 août 2015
117
9 févr. 2011 à 22:25
9 févr. 2011 à 22:25
C'est ca que je dis =D Si sous la SDL c'est possible, alors il existe bien une autre librairie offrant cette possibilité ;)
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.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
11 févr. 2011 à 23:16
11 févr. 2011 à 23:16
C'est pour ça que je t'ai conseillé d'utiliser _kbhit()...
Cdlt,
Cdlt,
ghuysmans99
Messages postés
2496
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
340
13 févr. 2011 à 23:09
13 févr. 2011 à 23:09
Tu dois utiliser des threads. Sous quelle plateforme travailles-tu ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
13 févr. 2011 à 23:33
13 févr. 2011 à 23:33
Toujours pas réglé ce topic ?
Juste deux fonctions : _kbhit() et clock(). Si ce n'est pas sur windows, il est possible de fabriquer _kbhit() en 5-6 lignes.
Cdlt,
Juste deux fonctions : _kbhit() et clock(). Si ce n'est pas sur windows, il est possible de fabriquer _kbhit() en 5-6 lignes.
Cdlt,