Terminal control/Clear the screen
![Task](http://static.miraheze.org/rosettacodewiki/thumb/b/ba/Rcode-button-task-crushed.png/64px-Rcode-button-task-crushed.png)
You are encouraged to solve this task according to the task description, using any language you may know.
Clear the terminal window.
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
<lang qbasic>CLS</lang>
Applesoft BASIC
<lang ApplesoftBasic>HOME</lang>
BBC BASIC
<lang bbcbasic> CLS</lang> or <lang bbcbasic> VDU 12</lang> or <lang bbcbasic> PRINT CHR$(12);</lang>
GW-BASIC
<lang qbasic>10 CLS</lang>
PureBasic
Clears the whole console content using the current background color. <lang PureBasic>ClearConsole()</lang>
Batch File
<lang command>CLS</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>
- include <stdio.h>
- 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>
F#
<lang fsharp>open System
Console.Clear()</lang>
Forth
<lang forth>page</lang>
Fortran
Fortran 2008: <lang forth>call execute_command_line('clear')</lang>
Go
External command
Probably most reliable way to clear the screen. <lang go>package main
import (
"os" "os/exec"
)
func main() {
c := exec.Command("clear") c.Stdout = os.Stdout c.Run()
}</lang>
ANSI escape code
Simplest, if your terminal supports the ANSI code you want. <lang go>package main
import "fmt"
func main() {
fmt.Print("\033[2J")
}</lang>
Ncurses
More complex, but works across multiple terminal types.
<lang go>package main
import (
"log" "time"
"code.google.com/p/goncurses"
)
func main() {
s, err := goncurses.Init() if err != nil { log.Fatal("goncurses:", err) } defer goncurses.End() s.Println("Clearing screen...") s.Refresh() time.Sleep(1 * time.Second)
s.Clear() // clear screen
// Goncurses saves the screen on Init and restores it on End. This // GetChar() allows you to see the effect of the program before it exits. s.GetChar() // press any key to continue
}</lang>
GUISS
This will only work if the terminal is sitting at a prompt. <lang guiss>Window:Terminal,Type:clear[enter]</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>
Java
Using the ANSI escape sequence: <lang java>public class Clear {
public static void main (String[] args) { System.out.print("\033[2J"); }
}</lang> An alternative sequence: <lang java>public class Clear {
public static void main (String[] args) { System.out.print("\033\143"); }
}</lang>
Lasso
<lang Lasso>local( esc = decode_base64('Gw==') )
stdout(#esc + '[2J')</lang>
Logo
<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>
Nemerle
Exactly as C#. Because of possible (probable) ambiguity, this is one time it may be prudent to use: <lang Nemerle>Console.Clear();</lang> rather than importing the Console class with using System.Console; and calling as: <lang Nemerle>Clear();</lang>
Nimrod
<lang nimrod>import osproc discard execCmd "clear"</lang>
OCaml
Using the library ANSITerminal:
<lang ocaml>#load "unix.cma"
- directory "+ANSITerminal"
- 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
- ... 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>
Python
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>
- 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:
Scala
<lang Scala>object Cls extends App {print("\033[2J")}</lang>
Ruby
<lang Ruby>system 'clear'</lang>
Or, without reliance on the command line:
(equivalent to `clear`
)
<lang Ruby>puts "\e[H\e[2J"</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:
<lang bash>clear
- Alternative method using tput
tput clear</lang>
XPL0
<lang XPL0>code Clear=40; Clear;</lang>
- Programming Tasks
- Terminal control
- Initialization
- Ada
- AutoHotkey
- AWK
- BASIC
- Applesoft BASIC
- BBC BASIC
- GW-BASIC
- PureBasic
- Batch File
- Blast
- Bracmat
- C
- C sharp
- COBOL
- D
- Euphoria
- F Sharp
- Forth
- Fortran
- Go
- Curses
- GUISS
- Icon
- Unicon
- J
- Java
- Lasso
- Logo
- Lua
- Mathematica
- Nemerle
- Nimrod
- OCaml
- Octave
- Pascal
- Perl
- Perl 6
- PicoLisp
- PowerShell
- ProDOS
- Python
- Racket
- Retro
- REXX
- Scala
- Scala Implementations
- Ruby
- Seed7
- Smalltalk
- Tcl
- UNIX Shell
- XPL0
- ACL2/Omit
- Maxima/Omit
- PARI/GP/Omit
- Inform 7/Omit