Terminal control/Clear the screen: Difference between revisions
m (→{{header|Scala}}: Rm Scala imp category) |
m (→{{header|REXX}}: Split a long line.) |
||
Line 333: | Line 333: | ||
=={{header|REXX}}== |
=={{header|REXX}}== |
||
The [[REXX]] programming language does not include a facility to clear the screen. |
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: |
|||
⚫ | |||
There are also various workarounds which are platform specific: |
There are also various workarounds which are platform specific: |
||
Revision as of 00:46, 10 November 2014
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>
Haskell
<lang Haskell> import System.Console.ANSI
main = clearScreen </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
- Haskell
- Icon
- Unicon
- J
- Java
- Lasso
- Logo
- Lua
- Mathematica
- Nemerle
- Nimrod
- OCaml
- Octave
- Pascal
- Perl
- Perl 6
- PicoLisp
- PowerShell
- ProDOS
- Python
- Racket
- Retro
- REXX
- Scala
- Ruby
- Seed7
- Smalltalk
- Tcl
- UNIX Shell
- XPL0
- ACL2/Omit
- Maxima/Omit
- PARI/GP/Omit
- Inform 7/Omit