Effacer l historique

Résolu
H.C1 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
H.C1 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Saluut tt l monde, je developpe un programme en C qui contient une phase d Login et mot de passe , et j aimerai bien qu apres avoir verifier le Login et le mdp , une autre page s affiche ou que ce qui etait ecrit avant s efface , commeca j aurai la page vide apres la verification..et merci d avance

3 réponses

H.C1 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   1
 
En fait , mon programme consite a gerer une caisse d un supermarché , et j aurai besoin a faire une facture a la fin du programme , je demande pas que vous fasiez ca pour moi , mais j ai besoin de vous conseils Yodeli , je vous demande si il existe une fonction ou un astuce pour faire ca , parceque a la fin j aurai besoin a avoir la facture , et ca serai mieux si la page contient que la facture..Merci
1
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
J'ai déjà répondu (cf. post #1).
0
Yodeli Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   7
 
Tu vas y arriver j'en suis sûr mais il faut déjà avoir la patience d'aller pas à pas dans ton projet et pas trop compter sur les astuces des copains. Quand ton programme sera avancé et que tu maîtriseras sa programmation.tu comprendras par toi même. Il ne faut pas essayer d'aller plus vite que la musique. Quand tu auras bien avancé dans l'apprentissage d'un langage tu pourras diriger un résultat de calculs vers une imprimante pour établir une facture.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

Il n'y a pas de façon standard de faire ce que tu demandes... Mais, c'est en possible en utilisant des fonctions propres à l'OS. Quel est-il ?

Sinon, pourquoi vouloir effacer l'écran après s'être connecté ? Généralement, on laisse l'écran en l'état.

Cdlt,
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Si tu connais la taille en lignes de ta console, tu peux, après avoir affiché ta "facture", ajouter des lignes vides avec autant de printf("\n"); que nécessaires pour faire défiler l'écran jusqu'à ce que le haut de ta facture soit en haut de l'écran et qu'il n'y ait rien d'autre de visible.


Dal
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Yep mais en C standard il n'y a pas de notion de console. Cela est spécifique à l'OS.
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
fiddy : oui, la taille de la console n'est pas définie par le standard du C, et le C standard ne permet pas non plus de trouver cette information. Ce que je propose est juste du bricolage présupposant une taille de la console.

En pratique, sous Windows, la taille initiale par défaut de la console est de 80x25.

https://en.wikipedia.org/wiki/Text_mode

By far the most common text mode used in DOS environments, and initial Windows consoles, is the default 80 columns by 25 rows, or 80×25, with 16 colors. This mode was available on practically all IBM and compatible personal computers.

Sous Linux, et les systèmes POSIX, la console émule en général vt102 et propose 80x24 par défaut.

Alors, on peut parier sur le fait qu'en scrollant de 25 lignes, on va probablement effacer l'écran.

Bien sûr, si ces tailles sont redimensionnées, le programme ne fonctionnera plus comme attendu.

H.C1, tu ne réponds pas à la question de fiddy, qui t'interroge sur le système sur lequel du programmes. Cela serait bien que tu répondes.

Pour un florilège de solutions à cette question fréquente, proposant des solutions pour plusieurs types de systèmes (dont le "bricolage" ci-dessus et d'autres plus fiables), tu peux consulter :

https://www.cprogramming.com/faq/cgi-bin/smartfaq.cgi?answer=1031963460&id=1043284385

où on te dit, par exemple, que pour le faire sous Windows, tu peux utiliser l'API de Windows, et créer une fonction comme celle-ci :
#include <windows.h>

void clear_screen ( void )
{
  DWORD n;                         /* Number of characters written */
  DWORD size;                      /* number of visible characters */
  COORD coord = {0};               /* Top left screen position */
  CONSOLE_SCREEN_BUFFER_INFO csbi;

  /* Get a handle to the console */
  HANDLE h = GetStdHandle ( STD_OUTPUT_HANDLE );

  GetConsoleScreenBufferInfo ( h, &csbi );

  /* Find the number of characters to overwrite */
  size = csbi.dwSize.X * csbi.dwSize.Y;

  /* Overwrite the screen buffer with whitespace */
  FillConsoleOutputCharacter ( h, TEXT ( ' ' ), size, coord, &n );
  GetConsoleScreenBufferInfo ( h, &csbi );
  FillConsoleOutputAttribute ( h, csbi.wAttributes, size, coord, &n );

  /* Reset the cursor to the top left position */
  SetConsoleCursorPosition ( h, coord );
}


ou vois la source officielle https://docs.microsoft.com/en-us/windows/console/clearing-the-screen en plus compliqué, ou pour plus de détails.

Si tu n'es pas sous Windows, le lien vers la faq précitée te donne des solutions pour d'autres systèmes d'exploitation.


Dal
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Exactement :-). J'attends encore que notre ami donne son OS ^^.
0
H.C1 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   1
 
Excusez moi pour le retard ...je travaille sur windows...
0
H.C1 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci Dal , fiddy.. la structure marche tres Bien...
0