Comment rafraichir la console

Résolu
florian1121 Messages postés 37 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 26 avril 2006 - 21 avril 2006 à 16:56
florian1121 Messages postés 37 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 26 avril 2006 - 21 avril 2006 à 19:04
Bonjours, je recherche une fonction qui permetrait de rafraichir la console et ce a interval regulier! c a dire effacer tt ce qu'il y a d'ecrit et le réecrire tte les seconde avec si demander certain changement!!
Merci d'avance pour votre aide!!!
A voir également:

14 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
21 avril 2006 à 17:35
Pour tout efface c'est system("cls") mais pour réécrire, il faudra que tu mette en mémoire tout ce que tu écris dans ta console et le remettre après le system("cls")

___________________________________________
Les plus grands esprits trouvent toujours une solution
3
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
21 avril 2006 à 18:43
Car sinon system("cls") est plus rapide...

___________________________________________
Les plus grands esprits trouvent toujours une solution
3
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
21 avril 2006 à 18:57
- system : une fonction ANSI C implémentée sur nombre de systèmes d'exploitation pour exécuter d'autres programmes.
- cls : une commande DOS permettant d'effacer l'écran.

Ciao.
3
julxerab Messages postés 9 Date d'inscription mercredi 28 mai 2003 Statut Membre Dernière intervention 21 avril 2006
21 avril 2006 à 17:45
Si ce que tu veux rafraichir tiens sur une ligne.. tu peux utiliser le caractere \r pour revenir en debut de ligne..
par example pour un variable qui s'incremente

int i=0;

printf("la valeur de i est %d", i);

while (i<1000)
{
i+=1;
Sleep(20);
printf("\rla valeur de i est %d", i);
}

---------------------------------------------------
reset by peer
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
21 avril 2006 à 17:50
Salut,

Tu pourras lire ci-après un exemple en C avec les API Windows :

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coordScreen = { 0, 0 };
BOOL bSuccess;
DWORD cCharsWritten;
CONSOLE_SCREEN_BUFFER_INFO csbi; /* pour récupérer les infos de la console */
DWORD dwConSize; /* nombre de carctères */
/* récupère le nombre de carctère dans un buffer */
bSuccess = GetConsoleScreenBufferInfo( hConsole, &csbi );
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
/* remplit la console de blancs */
bSuccess = FillConsoleOutputCharacter( hConsole, (TCHAR) ' ',
dwConSize, coordScreen, &cCharsWritten );
/* récupère les attributs courants de la console */
bSuccess = GetConsoleScreenBufferInfo( hConsole, &csbi );
/* now set the buffer's attributes accordingly */
bSuccess = FillConsoleOutputAttribute( hConsole, csbi.wAttributes,
dwConSize, coordScreen, &cCharsWritten );
/* met le curseur en position (0, 0) */
bSuccess = SetConsoleCursorPosition( hConsole, coordScreen );

En espérant que ce petit bout de code d'aide un peu,
Ciao.
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
21 avril 2006 à 17:50
Ouais c'est un très bonne solution aussi. Mais ça dépend de quesque tu veut faire exactement. Peu tu nous expliquer?

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
florian1121 Messages postés 37 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 26 avril 2006 2
21 avril 2006 à 18:34
Merci pour vos reponse!!!!
Alors, en fait il s'agit d'un ordinateur de bord de voiture qu'il me faut réalisé. avec vitesse instantanée, consomation, distance parcourue et tout!!
je suis parvenue a obtenir la fonction qui récupere l'appuit des fleches du clavier pour fair augmenter et diminué une variable qui correspond a la vitesse de la voiture!! seulement pour chaque chaque appuit des fleche la nouvele valeur s'inscrit mais les ancienne valeur reste egalement, c pourquoi j'aurait besoin de cette fonction qui permettrait, tant que je n'appuit pas sur les fleches de garder la meme valeur mais egalement apres avoir appuyé de n'avoir QUE la nouvelle valeur!!
Et c'est une fonction de rafraichissement qui me parait le mieux adapté, cependant je peut me tromper!!
De plus je ne suis qu'au debut de ce projet. Et a la fin, pour l'évolution de la distance parcourue et de la consomation j'aurai egalement besoin d'un rafraichissement regulier de la console!!
Enfin il s'agit d'un projet pour mes étude et mon niveau actuel en language c se limite au structure itérative et conditionelle et egalement un petit peu de pointeur, c tout!!!Je dis ca pour la reponse de MEECH qui est surement bonne, je n'en doute pas et t'en remercie, mais je n'ai pas le niveau requit pour comprendre tes ligne de codes, desolé!!
Merci beaucoup pour votre aide, car le temps presse!!!!
0
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
21 avril 2006 à 18:38
Merci mais, euh... tu sais, j'ai retrouvé ce bout de code d'une ancienne utilisation... Je l'avais moi-même récupéré ailleurs (de la MSDN, je crois)... En fait, je suis un imposteur...
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
21 avril 2006 à 18:40
Euu meech, ce bout de code la récupère t-il tout le texte entrée dans la console?

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
florian1121 Messages postés 37 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 26 avril 2006 2
21 avril 2006 à 18:42
LOL, ok meech!! je dois dire que tu m'a fait un peu peur, car je comprenanit vraiment rien a tes lignes!!! au moins je suis pas le seul on dirait!!
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
21 avril 2006 à 18:45
Ce code a l'aire de simplement effacer la console et remettre le curseur à la ligne zéro.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
21 avril 2006 à 18:47
En l'occurrence, il me semble que ce code ne fait que :
1. récupérer les informations de la console windows afin d'en extraire la taille ;
2. sélectionner l'ensemble de la zone ;
3. balancer sur la sortie standard des caractères d'espacement.
4. positionner le curseur en (zéro, zéro).

Avec le principe du buffer de console, je pense qu'il est possible de récupérer un (ou plusieurs) caractères disposés quelque part sur la console, mais je reconnais ne pas connaître et ne pas avoir cherché les fonctions pour le faire

A plus tard.
0
florian1121 Messages postés 37 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 26 avril 2006 2
21 avril 2006 à 18:48
SAKingdom pourrait tu developper un peu le system("cls"), est-ce que c une fonction présente dans les biblioteque?
0
florian1121 Messages postés 37 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 26 avril 2006 2
21 avril 2006 à 19:04
MERCI BEAUCOUP, le system("cls") marche nikel!!
0
Rejoignez-nous