[C] Rafraichissement console

Fermé
Pierrestone - 3 nov. 2008 à 19:19
 Pierrestone - 5 nov. 2008 à 21:44
Bonjour a tous,
Je suis sur un programme en C, je dois recréer un pacman. Et j'aimerais rafraîchir ma console a chaque déplacement de celui-ci. Mon problème est que celle-ci se rafraîchit un peu trop rapidement, la console clignote. Y a-t-il un moyen de changer la fréquence de rafraîchissement. J'ai utilisé pour l'instant la fonction : system("cls") . Merci d'avance
A voir également:

2 réponses

cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
3 nov. 2008 à 21:00
Bonsoir,

Essaie avec cette commande :

system ("PING 0.0.0.0 -n 5 > NUL");
system ("cls");

5 représente le nombre de secondes (à actualiser)
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
3 nov. 2008 à 21:11
Salut,
C'est quoi cette bidouille absolument pas portable ? lol
Pour faire une pause, autant utiliser sleep(int) de unistd.h.
Cdlt
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
3 nov. 2008 à 21:38
Bonsoir,

Sous Vista, je ne sais pas mais sous XP la commande sleep est inconnue. Enfin je ne suis pas parvenu à l'utiliser.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842 > cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012
3 nov. 2008 à 21:59
Je ne parle pas de commandes DOS mais de fonctions en C. La fonction sleep() fait partie de la bibliothèque unistd.h. donc tout à fait portable contrairement aux commandes DOS qui ne marchent que sur les plate-formes Microsoft.
C'est pour ça qu'il n'est pas très conseillé d'utiliser la fonction system() sauf cas particulier. Il est bien mieux d'utiliser les fonctions du langage dans lequel on programme pour assurer la compatibilité quelque soit l'OS.
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
3 nov. 2008 à 22:29
J'avais bien compris, j'avais d'ailleurs renouvelé le test suivant (je l'avais testé il y a quelques temps):
.........................
#include <unistd.h>

int main() 
   {
     char  rep_clav_choix      = '\0'                        ;
     int   I                   = 0                           ;
     char  enieme     []       = "iere"                      ;
     const int nb_val = 3                                          ;
     float tab_val [nb_val]                                  ;
............................
 sleep (5);
............................


J'obtiens le message suivant :
fatal error C1083: Impossible d'ouvrir le fichier include : 'unistd.h' : No such file or directory
Si je retire #include <unistd.h>
J'obtiens :
error C3861: 'sleep' : identificateur introuvable ce qui semble normal.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842 > cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012
3 nov. 2008 à 22:45
Il y a fort à parier pour que tu n'utilises pas un compilateur Posix. Et comme unistd est conforme posix, le fichier ne sera pas trouvé. Si tu utilises VC (non posix), utilise simplement la fonction Sleep() (S majuscule) et inclue windows.h
Sinon, petite remarque sur ton petit code.

const int nb_val=3;
float tab_val[nb_val];

Ce n'est pas conseillé. Il est préférable d'utiliser #define NB_VAL 3 au lieu d'utiliser const int pour respecter la norme C90.
Cdlt
0
Merci bien pour ces renseignement. Effectivement la fonction sleep a résolu mon probleme.

Cordialement un amateur de pacman heureux
0