Skärmrensning

Fråga: Hur rensar man skärmen, d.v.s. "suddar" bort all text?

Skärmrensning finns det ingen standardiserad funktion för så sätten att åstadkomma detta på blir lite olika beroende på vilket operativsystem man använder samt vilket utvecklingsverktyg man har. Nedan visas några olika varianter, men letar du runt på nätet kan du säkert hitta fler.



system("CLS") eller system("clear")

Använder du Windows eller Linux kan du få en skärmrensning om du i...
  inkluderar cstdlib och sedan gör anropet system("CLS");

 inkluderar cstdlib och sedan gör anropet system("clear");


clrscr()

Borland (eller Borland-kloner) har en mängd praktiska funktioner för console-program. För att använda dessa funktioner måste du inkluderaconio.h. En skärmrensning åstadkommer du sedan med funktionsanropetclrscr().

   Använder du CodeWarrior för Mac eller Win32 kan du också använda clrscr() men inkluderar då i stället console.h.


Hemmabygge

Man kan låta Windows göra en skärmrensning i console-fönstret. Det finns ingen färdig Windows-funktion för detta men det går att knåpa ihop en. Nedan ser du ett exempel på en sådan funktion. För att använda den måste du inkludera windows.h

Nedanstående kod är antagligen obegriplig nu, men du kan alltid klipp & klistra in funktionen i din egen kod. När du kommit längre i din programmering blir funktionens uppbyggnad begriplig och antaglöigen kan du då förbättra den.

Skärmrensningsfunktion där Win32API nyttjas

void sudda()
{
   HANDLE handtag;
   handtag = GetStdHandle(STD_OUTPUT_HANDLE);
   CONSOLE_SCREEN_BUFFER_INFO sInfo;
   GetConsoleScreenBufferInfo(handtag, &sInfo);
   DWORD area = sInfo.dwSize.X * sInfo.dwSize.Y;
   COORD koordinater = { 0, 0 };
   FillConsoleOutputCharacter(handtag, ' ', area, koordinater, &area);
   SetConsoleCursorPosition (handtag, koordinater);
}