[C++] Petites questions

Petites questions [C++] - C++ - Programmation

Marsh Posté le 01-01-2004 à 17:58:10    

Salut,
 
voilà, j'ai un projet à faire en C++, et j'ai 2 petits problèmes :
- mon programme s'exécute dans une fenêtre DOS, et j'aimerais savoir quelle est la commande qui permet d'effacer son contenu (de ravoir une fenêtre noire vierge, donc)
- j'aimerais savoir également si il y a un moyen de mettre une "pause" (dans une boucle par exemple), genre un message "appuyez sur espace pour continuer"
 
merci !

Reply

Marsh Posté le 01-01-2004 à 17:58:10   

Reply

Marsh Posté le 01-01-2004 à 18:01:20    

ben si jamais ton truc ne doit tourner que sous zindozs :
 
1/ system("cls" );
2/ system("pause" );

Reply

Marsh Posté le 01-01-2004 à 18:04:33    

merci c'est exactement ça :)
 
plus que le vidage de la fenêtre. J'ai essayé clear(); à tout hasard, mais ça existe pas...

Reply

Marsh Posté le 01-01-2004 à 18:13:04    

system("cls" ) je te dis
 

Reply

Marsh Posté le 01-01-2004 à 18:16:06    

c'est n'imp les system, tourne toi vers une vrai bibliothèque

Reply

Marsh Posté le 01-01-2004 à 18:24:16    

chrisbk a écrit :

system("cls" ) je te dis
 
 


 
lol, dsl, je croyais que c'était la même chose.
mici

Reply

Marsh Posté le 01-01-2004 à 18:26:32    

taz a écrit :

c'est n'imp les system, tourne toi vers une vrai bibliothèque


 
:/
 
je fais de la méca à la base, on a un projet d'info par an...
c'est juste pour tourner sous windows. le programme devrai faire 250-300 lignes en un seul fichier ;) je pense pas avoir besoin de trucs trop compliqués ^^

Reply

Marsh Posté le 01-01-2004 à 18:28:56    

moi j'ai jamais compris cette phobie de l'écran, cette manie de vouloir toujours tout effacer. surtout pour des scientifiques, normalement, on veut garder des traces de tout, un programme qui n'est exploitable qu'interactivement est trop limité

Reply

Marsh Posté le 01-01-2004 à 18:47:41    

taz a écrit :

moi j'ai jamais compris cette phobie de l'écran, cette manie de vouloir toujours tout effacer. surtout pour des scientifiques, normalement, on veut garder des traces de tout, un programme qui n'est exploitable qu'interactivement est trop limité


 
boarf, c'est juste que je trouve que ça fait plus propre :)
 
en fait, je dois "simuler" un atelier (9 machines produisants 3 types de pièces, et un chariot qui charge et décharge les pièces).
on doit le faire avec un compteur, pour simuler le temps. donc à chaque incrémentation du compteur, je fais des traitement sur l'atelier.
Je veux pouvoir aficher l'état de l'atelier pas à pas, et je trouve que c'est plus propre avec un écran vierge, ça se limite à ça ;)
 
c'est un projet bidon, c'est juste pour nous donner des notions.


Message édité par Gurney_Halleck le 01-01-2004 à 18:48:15
Reply

Marsh Posté le 02-01-2004 à 14:32:40    

chrisbk a écrit :

ben si jamais ton truc ne doit tourner que sous windows :
 
1/ system("cls" );
2/ system("pause" );


 
sous linux ca marche pas ? :/

Reply

Marsh Posté le 02-01-2004 à 14:32:40   

Reply

Marsh Posté le 02-01-2004 à 14:33:39    

skynaute a écrit :


 
sous linux ca marche pas ? :/


 
system ouais, mais fo remplacer les commandes par ce qui va bien (clear pour cls par ex).
Dans l'ensemble la solution est franchement pas terrible, mais bon, ca depanne :o

Reply

Marsh Posté le 02-01-2004 à 15:02:42    

y'a quoi d'autre de mieux ou plus pratique ?

Reply

Marsh Posté le 02-01-2004 à 15:30:24    

tu peux le faire juste avec un printf, mais faut que je retrouve la syntaxe....
 

Reply

Marsh Posté le 02-01-2004 à 15:48:50    

C'est ça :
 printf("\033[2j" );
Par contre, j'ai oublié que sous Windows il faut un pilote ANSI pour que ca marche (sous Unix ça marchera en standard )
Mettre device=ansi.sys dans config.sys (pas terrible non plus comme solution en fait...)
 
 

Reply

Marsh Posté le 02-01-2004 à 18:28:41    

Si tu veux effacer la console DOS au début de l'execution du programme et faire pause à la fin de l'exection alors tu peux le faire sans même taper une ligne de C.
 
Tu créés un fichier "lanceur.bat" avec pour contenu les 3 lignes suivantes :
cls
monprogramme.exe
pause
 
Pour executer ton programme, tu lances le fichier lanceur.bat.
 
Voila! Peut-etre une autre solution tout aussi simple.
 
Cordialement,
   Xter.


Message édité par xterminhate le 02-01-2004 à 18:29:42
Reply

Marsh Posté le 14-01-2004 à 04:28:29    

Code :
  1. //copyright Chavez.d
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <ctype.h>
  5. #include <errno.h>
  6. #include <windows.h>
  7. void cls (const int arriere_plan)
  8. /*------------------------------*/
  9. {
  10.     unsigned long x;
  11. COORD CO = {0, 0};
  12.     FillConsoleOutputAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
  13.             (WORD)(arriere_plan*16), 2000, CO, &x); 
  14. FillConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE),
  15.             0x20,2000,CO,&x);
  16. }


 
 
voila un ptit cls


Message édité par C H A V E Z le 14-01-2004 à 04:30:32
Reply

Marsh Posté le 14-01-2004 à 06:43:54    

C H A V E Z a écrit :

Code :
  1. //copyright Chavez.d
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <ctype.h>
  5. #include <errno.h>
  6. #include <windows.h>
  7. void cls (const int arriere_plan)
  8. /*------------------------------*/
  9. {
  10.     unsigned long x;
  11. COORD CO = {0, 0};
  12.     FillConsoleOutputAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
  13.             (WORD)(arriere_plan*16), 2000, CO, &x); 
  14. FillConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE),
  15.             0x20,2000,CO,&x);
  16. }


 
 
voila un ptit cls


 
ca reste proprietaire qd meme
 
le C ne definit pas lecran pour lui c juste un peripherique de sortie donc cls n'a aucun sens

Reply

Marsh Posté le 31-03-2004 à 13:43:40    

sinon la fonction  
clrscr();  
ca doit fonctioner sous windows non?
 
ben non en fait...
ou alors il faut une bibiotheque mais je sais pas laquelle...


Message édité par naoyfurieux le 01-04-2004 à 14:34:53
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed