Terminal control/Clear the screen

Revision as of 11:49, 27 July 2013 by rosettacode>Edward H (Added syntax highlighting to Rexx example. Also, the last edit was meant to say 'Added COBOL example'.)

Clear the terminal window.

Task
Terminal control/Clear the screen
You are encouraged to solve this task according to the task description, using any language you may know.

Ada

For systems with ANSI terminal handling:

<lang Ada>with Ada.Text_IO; procedure CLS is begin

  Ada.Text_IO.Put(ASCII.ESC & "[2J");

end CLS;</lang>

AutoHotkey

Reference: http://www.autohotkey.com/forum/topic76532.html <lang AHK>RunWait %comspec% /c cls</lang>

AWK

<lang awk>system("clear")</lang>

BASIC

Works with: QBasic
Works with: Locomotive Basic
Works with: ZX Spectrum Basic
Works with: BBC BASIC

<lang qbasic>CLS</lang>

Batch File

<lang command>CLS</lang>

BBC BASIC

<lang bbcbasic> CLS</lang> or <lang bbcbasic> VDU 12</lang> or <lang bbcbasic> PRINT CHR$(12);</lang>

Blast

<lang blast>clear</lang>

Bracmat

<lang bracmat>sys$cls&</lang>

C

The C version of the Minesweeper game uses curses.

If perhaps clear screen isn't used, call the function cls to do the trick.

<lang C>void cls(void) {

 int printf(char*,...);
 printf("%c[2J",27);

}</lang>

Here is the cheaty way no one likes only works on windows <lang C>

  1. include <stdio.h>
  2. include <stdlib.h>

void main() {

printf ("clearing screen");
getchar();
System("cls");

} </lang>

C#

<lang csharp>System.Console.Clear();</lang>

COBOL

<lang cobol> PROGRAM-ID. blank-terminal.

      DATA DIVISION.
      SCREEN SECTION.
      01  blank-screen BLANK SCREEN.
      
      PROCEDURE DIVISION.
          DISPLAY blank-screen
          GOBACK
          .</lang>

D

<lang d>extern (C) nothrow {

   void disp_open();
   void disp_move(int, int);
   void disp_eeop();
   void disp_close();

}

void main() {

   disp_open();
   disp_move(0, 0);
   disp_eeop();
   disp_close();

}</lang>

Euphoria

<lang Euphoria>clear_screen()</lang>

Forth

<lang forth>page</lang>

Go

<lang go>package main

import (

   "os"
   "os/exec"

)

func main() {

   c := exec.Command("clear")
   c.Stdout = os.Stdout
   c.Run()

}</lang>

GUISS

This will only work if the terminal is sitting at a prompt. <lang guiss>Window:Terminal,Type:clear[enter]</lang>

GW-BASIC

<lang qbasic>10 CLS</lang>

Icon and Unicon

Example works for both Icon and Unicon. Determine which system command to call by querying &features at run time. Alternately, the related preprocessor symbols can be used to select the operating system. <lang Icon>procedure main ()

 if &features == "MS Windows" then system("cls")  # Windows
 else if &features == "UNIX" then system("clear") # Unix

end</lang>

J

Note: this is specific the java+gdi based J ide. <lang j>smwrite_jijs_ </lang>

<lang logo>cleartext</lang> There is a separate command to reset the turtle graphics window. <lang logo>clearscreen cs  ; abbreviation for clearscreen clean  ; like cs, but doesn't reset turtle position</lang>

Lua

<lang lua>os.execute( "clear" )</lang> will not work because "clear" is not a command although you can use <lang lua>os.execute( "cls" )</lang>

Mathematica

Delegating to clear on terminal enabled OS(Mac Os, Linux) <lang Mathematica>Run["clear"];</lang>

OCaml

Using the library ANSITerminal:

<lang ocaml>#load "unix.cma"

  1. directory "+ANSITerminal"
  2. load "ANSITerminal.cma"

open ANSITerminal

let () =

 erase Screen</lang>

Octave

<lang Octave> system clear;</lang> <lang Octave> system('clear');</lang>

Pascal

<lang Pascal>clrscr;</lang>

Perl

Assuming some ANSI terminal, easiest way is call your system's clear command: <lang perl>system('clear')</lang>

If it's needed often: <lang perl>$clear = `clear`; # clear simply prints some escape sequence, cache it

  1. ... later:

print $clear;</lang>

We can also obtain the sequence using the Term::Cap module:

<lang perl>use Term::Cap;

$terminal = Term::Cap->Tgetent(); $clear = $terminal->Tputs('cl'); print $clear;</lang>

Perl 6

<lang perl6>sub clear { print state $ = qx[clear] } clear;</lang>

PicoLisp

<lang PicoLisp>(call 'clear)</lang>

PowerShell

<lang powershell>Clear-Host</lang>

ProDOS

<lang ProDOS>clearscurrentscreentext</lang>

PureBasic

Clears the whole console content using the current background color. <lang PureBasic>ClearConsole()</lang>

Python

Works with: Python version 2.6
Works with: Ubuntu version 10.10

To clear the screen on windows, replace 'clear' with 'cls'

<lang python> import os os.system('clear') </lang>

or similar to C example

<lang python> print "%c[2J" % (27) </lang>

Racket

<lang racket>

  1. lang racket

(require (planet neil/charterm:3:0)) (with-charterm

(void (charterm-clear-screen)))

</lang>

Retro

<lang Retro>clear</lang>

REXX

The REXX programming language does not include a facility to clear the screen. However, it is possile to execute an external system command to achieve this task: <lang rexx>'clear'</lang>

There are also various workarounds which are platform specific:

regina

The regina interpreter supports the rexxcurses plugin, which provides the facility to clear the screen:

Ruby

<lang Ruby>system 'clear'</lang>

Seed7

The function clear is portable and clears the console window. Clear is based on terminfo respectively the Windows console API. A portable function to clear cannot rely on shell respectively cmd.exe commands, because Windows uses CLS and Unix shells use CLEAR, to clear a screen. ANSI terminal escape sequences are also not 100% portable, since not all terminals accept them.

<lang seed7>$ include "seed7_05.s7i";

 include "console.s7i";

const proc: main is func

 local
   var text: console is STD_NULL;
 begin
   console := open(CONSOLE);
   clear(console);
   # Terminal windows often restore the previous
   # content, when a program is terminated. Therefore
   # the program waits until Return/Enter is pressed.
   readln;
 end func;</lang>

Smalltalk

<lang smalltalk>Transcript clear.</lang>

Tcl

This only works on systems with ANSI terminal handling, i.e., Unix platforms. <lang tcl>puts -nonewline "\033\[2J" flush stdout</lang>

UNIX Shell

The clear command can be used to clear the terminal screen:

Works with: Bourne Shell

<lang bash>clear

  1. Alternative method using tput

tput clear</lang>

XPL0

<lang XPL0>code Clear=40; Clear;</lang>