Terminal control/Cursor positioning: Difference between revisions

m
syntax highlighting fixup automation
m (→‎{{header|Phix}}: syntax coloured, marked p2js incompatible)
m (syntax highlighting fixup automation)
Line 8:
=={{header|AArch64 Assembly}}==
{{works with|as|Raspberry Pi 3B version Buster 64 bits}}
<syntaxhighlight lang="aarch64 assembly">
<lang AArch64 Assembly>
/* ARM assembly AARCH64 Raspberry PI 3B */
/* program cursorPos64.s */
Line 64:
/* for this file see task include a file in language AArch64 assembly */
.include "../includeARM64.inc"
</syntaxhighlight>
</lang>
=={{header|Action!}}==
<langsyntaxhighlight Actionlang="action!">PROC Main()
Position(3,6)
Print("Hello")
RETURN</langsyntaxhighlight>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Cursor_positioning.png Screenshot from Atari 8-bit computer]
Line 75:
=={{header|Ada}}==
 
<langsyntaxhighlight Adalang="ada">with Ada.Text_IO;
 
procedure Cursor_Pos is
Line 83:
Ada.Text_IO.Set_Col(3);
Ada.Text_IO.Put("Hello");
end Cursor_Pos;</langsyntaxhighlight>
 
=={{header|ARM Assembly}}==
{{works with|as|Raspberry Pi}}
<syntaxhighlight lang="arm assembly">
<lang ARM Assembly>
 
/* ARM assembly Raspberry PI */
Line 155:
bx lr @ return
 
</syntaxhighlight>
</lang>
 
=={{header|Arturo}}==
 
<langsyntaxhighlight lang="rebol">goto 3 6
print "Hello"</langsyntaxhighlight>
 
=={{header|AutoHotkey}}==
{{works with|AutoHotkey_L}}
Remember that AHK is not built for the console, so we must call the WinAPI directly.
<langsyntaxhighlight AHKlang="ahk">DllCall( "AllocConsole" ) ; create a console if not launched from one
hConsole := DllCall( "GetStdHandle", int, STDOUT := -11 )
 
Line 179:
return out
return 0
}</langsyntaxhighlight>
 
=={{header|Axe}}==
Since the rows and columns are zero-indexed, we must subtract 1 from both.
<langsyntaxhighlight lang="axe">Output(2,5,"HELLO")</langsyntaxhighlight>
 
=={{header|BaCon}}==
<langsyntaxhighlight lang="freebasic">' Cursor positioning, requires ANSI compliant terminal
GOTOXY 3,6
PRINT "Hello"</langsyntaxhighlight>
The X Y in <code>GOTOXY</code> is Column Row order.
 
Line 194:
 
==={{header|Applesoft BASIC}}===
<langsyntaxhighlight Applesoftlang="applesoft BASICbasic"> 10 VTAB 6: HTAB 3
20 PRINT "HELLO"</langsyntaxhighlight>
 
==={{header|IS-BASIC}}===
<langsyntaxhighlight ISlang="is-BASICbasic">100 PRINT AT 6,3:"Hello"</langsyntaxhighlight>
 
==={{header|Locomotive Basic}}===
<langsyntaxhighlight lang="locobasic"> 10 LOCATE 3,6
20 PRINT "Hello"</langsyntaxhighlight>
 
==={{header|ZX Spectrum Basic}}===
<langsyntaxhighlight lang="zxbasic"> 10 REM The top left corner is at position 0,0
20 REM So we subtract one from the coordinates
30 PRINT AT 5,2 "Hello"</langsyntaxhighlight>
 
==={{header|BBC BASIC}}===
<langsyntaxhighlight lang="bbcbasic">PRINT TAB(2,5);"Hello"</langsyntaxhighlight>
 
==={{header|Commodore BASIC}}===
<langsyntaxhighlight lang="basic"> 100 print chr$(19) :rem change to lowercase set
110 print chr$(14) :rem go to position 1,1
120 print:print:print:print
130 print tab(2) "Hello" </langsyntaxhighlight>
 
=={{header|Befunge}}==
Assuming a terminal with support for ANSI escape sequences.
<langsyntaxhighlight lang="befunge">0"olleHH3;6["39*>:#,_$@</langsyntaxhighlight>
 
=={{header|Blast}}==
<langsyntaxhighlight lang="blast"># This will display a message at a specific position on the terminal screen
.begin
cursor 6,3
display "Hello!"
return
# This is the end of the script</langsyntaxhighlight>
 
=={{header|C}}/{{header|C++}}==
Using ANSI escape sequence, where ESC[y;xH moves curser to row y, col x:<langsyntaxhighlight lang="c">#include <stdio.h>
int main()
{
printf("\033[6;3HHello\n");
return 0;
}</langsyntaxhighlight>
 
The C version of the minesweeper game uses curses.
Line 242:
 
On Windows, using console API:
<langsyntaxhighlight lang="c">#include <windows.h>
 
int main() {
Line 250:
WriteConsole(hConsole, "Hello", 5, NULL, NULL);
return 0;
}</langsyntaxhighlight>
 
=={{header|C sharp|C#}}==
{{works with|Mono|1.2}}
{{works with|Visual C sharp|Visual C#|2003}}
<langsyntaxhighlight lang="csharp">static void Main(string[] args)
{
Console.SetCursorPosition(3, 6);
Console.Write("Hello");
}</langsyntaxhighlight>
 
=={{header|COBOL}}==
<langsyntaxhighlight lang="cobol"> IDENTIFICATION DIVISION.
PROGRAM-ID. cursor-positioning.
 
Line 269:
 
GOBACK
.</langsyntaxhighlight>
 
=={{header|Common Lisp}}==
==={{header|ncurses}}===
To interface the ncurses C library from Lisp, the ''croatoan'' library is used.
<langsyntaxhighlight lang="lisp">(defun cursor-positioning ()
(with-screen (scr :input-blocking t :input-echoing nil :cursor-visible nil)
(move scr 5 2)
Line 280:
(refresh scr)
;; wait for keypress
(get-char scr)))</langsyntaxhighlight>
 
=={{header|D}}==
Line 291:
puts the cursor at line L and column C.
 
<syntaxhighlight lang="d">
<lang D>
import std.stdio;
 
Line 298:
writef("\033[6;3fHello");
}
</syntaxhighlight>
</lang>
 
'''Output:'''
Line 314:
=={{header|Elena}}==
ELENA 4.x :
<langsyntaxhighlight lang="elena">public program()
{
console.setCursorPosition(3,6).write("Hello")
}</langsyntaxhighlight>
 
=={{header|Euphoria}}==
<langsyntaxhighlight Euphorialang="euphoria">position(6,3)
puts(1,"Hello")</langsyntaxhighlight>
 
=={{header|F_Sharp|F#}}==
<langsyntaxhighlight lang="fsharp">open System
 
Console.SetCursorPosition(3, 6)
Console.Write("Hello")</langsyntaxhighlight>
 
=={{header|Forth}}==
<langsyntaxhighlight lang="forth">2 5 at-xy ." Hello"</langsyntaxhighlight>
 
=={{header|Fortran}}==
===Intel Fortran on Windows===
<langsyntaxhighlight lang="fortran">program textposition
use kernel32
implicit none
Line 343:
q = SetConsoleCursorPosition(hConsole, T_COORD(3, 6))
q = WriteConsole(hConsole, loc("Hello"), 5, NULL, NULL)
end program</langsyntaxhighlight>
 
 
=={{header|FreeBASIC}}==
<langsyntaxhighlight lang="freebasic">Locate 6, 3 : Print "Hello"
Sleep</langsyntaxhighlight>
 
 
=={{header|Go}}==
===External command===
<langsyntaxhighlight lang="go">package main
 
import (
Line 368:
cmd.Run()
fmt.Println("Hello")
}</langsyntaxhighlight>
===ANSI escape codes===
<langsyntaxhighlight lang="go">package main
 
import "fmt"
Line 376:
func main() {
fmt.Println("\033[2J\033[6;3HHello")
}</langsyntaxhighlight>
===Ncurses===
{{libheader|curses}}
<langsyntaxhighlight lang="go">package main
 
import (
Line 396:
s.Println("Hello")
s.GetChar()
}</langsyntaxhighlight>
 
=={{header|Icon}} and {{header|Unicon}}==
If the OS has older termcap files, CUP is included with <tt>link ansi</tt>
<langsyntaxhighlight lang="unicon">procedure main()
writes(CUP(6,3), "Hello")
end
Line 407:
writes("\^[[",i,";",j,"H")
return
end</langsyntaxhighlight>
 
=={{header|J}}==
Using terminal positioning verbs of [[Terminal_control/Coloured_text#J]]
<syntaxhighlight lang J="j">'Hello',~move 6 3</langsyntaxhighlight>
 
=={{header|Julia}}==
<langsyntaxhighlight lang="julia">const ESC = "\u001B"
 
gotoANSI(x, y) = print("$ESC[$(y);$(x)H")
Line 420:
gotoANSI(3, 6)
println("Hello")
</syntaxhighlight>
</lang>
 
=={{header|Kotlin}}==
{{Works with|Ubuntu|14.04}}
<langsyntaxhighlight lang="scala">// version 1.1.2
 
fun main(args: Array<String>) {
print("\u001Bc") // clear screen first
println("\u001B[6;3HHello")
}</langsyntaxhighlight>
 
=={{header|Lasso}}==
<langsyntaxhighlight Lassolang="lasso">local(esc = decode_base64('Gw=='))
 
stdout( #esc + '[6;3HHello')</langsyntaxhighlight>
 
=={{header|Liberty BASIC}}==
<langsyntaxhighlight lang="lb">locate 3, 6
print "Hello"
</langsyntaxhighlight>
 
=={{header|Logo}}==
<langsyntaxhighlight lang="logo">setcursor [2 5]
type "Hello</langsyntaxhighlight>
You can also draw positioned text on the turtle graphics window.
<langsyntaxhighlight lang="logo">setpos [20 50]
setxy 20 30 ; alternate way to set position
label "Hello</langsyntaxhighlight>
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<langsyntaxhighlight Mathematicalang="mathematica">Run["tput cup 6 3"]
Print["Hello"]</langsyntaxhighlight>
 
=={{header|Nim}}==
<langsyntaxhighlight lang="nim">import terminal
setCursorPos(3, 6)
echo "Hello"</langsyntaxhighlight>
 
=={{header|NS-HUBASIC}}==
<langsyntaxhighlight NSlang="ns-HUBASIChubasic">10 LOCATE 3,6
20 PRINT "HELLO"</langsyntaxhighlight>
 
=={{header|OCaml}}==
Line 466:
Using the library [http://forge.ocamlcore.org/projects/ansiterminal/ ANSITerminal]:
 
<langsyntaxhighlight lang="ocaml">#load "unix.cma"
#directory "+ANSITerminal"
#load "ANSITerminal.cma"
Line 476:
Trm.set_cursor 3 6;
Trm.print_string [] "Hello";
;;</langsyntaxhighlight>
 
=={{header|Pascal}}==
<syntaxhighlight lang="pascal">
<lang Pascal>
program cursor_pos;
uses crt;
Line 486:
write('Hello');
end.
</syntaxhighlight>
</lang>
 
=={{header|Perl}}==
Using the Term::Cap module:
<langsyntaxhighlight lang="perl">
use Term::Cap;
 
Line 496:
print $t->Tgoto("cm", 2, 5); # 0-based
print "Hello";
</syntaxhighlight>
</lang>
 
=={{header|Phix}}==
<!--<langsyntaxhighlight Phixlang="phix">(notonline)-->
<span style="color: #008080;">without</span> <span style="color: #008080;">js</span> <span style="color: #000080;font-style:italic;">-- position</span>
<span style="color: #7060A8;">position</span><span style="color: #0000FF;">(</span><span style="color: #000000;">6</span><span style="color: #0000FF;">,</span><span style="color: #000000;">3</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">puts</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Hello"</span><span style="color: #0000FF;">)</span>
<!--</langsyntaxhighlight>-->
 
=={{header|PHP}}==
<syntaxhighlight lang="php">
<lang PHP>
echo "\033[".$x.",".$y."H"; // Position line $y and column $x.
echo "\033[".$n."A"; // Up $n lines.
Line 513:
echo "\033[".$n."D"; // Backward $n columns.
echo "\033[2J"; // Clear the screen, move to (0,0).
</syntaxhighlight>
</lang>
 
=={{header|PicoLisp}}==
<langsyntaxhighlight PicoLisplang="picolisp">(call 'tput "cup" 6 3)
(prin "Hello")</langsyntaxhighlight>
 
=={{header|PowerShell}}==
The following will only work in the PowerShell console host. Most notably it will not work in the PowerShell ISE.
<langsyntaxhighlight lang="powershell">$Host.UI.RawUI.CursorPosition = New-Object System.Management.Automation.Host.Coordinates 2,5
$Host.UI.Write('Hello')</langsyntaxhighlight>
Alternatively, in any PowerShell host that uses the Windows console, one can directly use the .NET <code>Console</code> class:
<langsyntaxhighlight lang="powershell">[Console]::SetCursorPosition(2,5)
[Console]::Write('Hello')</langsyntaxhighlight>
 
=={{header|PureBasic}}==
<langsyntaxhighlight PureBasiclang="purebasic">EnableGraphicalConsole(#True)
ConsoleLocate(3,6)
Print("Hello")</langsyntaxhighlight>
 
=={{header|Python}}==
Using ANSI escape sequence, where ESC[y;xH moves curser to row y, col x:<langsyntaxhighlight Pythonlang="python">print("\033[6;3HHello")</langsyntaxhighlight>
On Windows it needs to import and init the [http://code.google.com/p/colorama/ colorama] module first.
 
ANSI sequences are not recognized in Windows console, here is a program using Windows API:
 
<langsyntaxhighlight lang="python">from ctypes import *
 
STD_OUTPUT_HANDLE = -11
Line 554:
windll.kernel32.WriteConsoleA(h, c_char_p(c), len(c), None, None)
 
print_at(6, 3, "Hello")</langsyntaxhighlight>
 
=={{header|Quackery}}==
 
<langsyntaxhighlight Quackerylang="quackery"> [ number$ swap number$
$ 'print("\033[' rot join
char ; join
Line 565:
python ] is cursor-at ( x y --> )
 
3 6 cursor-at say "Hello"</langsyntaxhighlight>
 
=={{header|Racket}}==
<langsyntaxhighlight lang="racket">
#lang racket
(require (planet neil/charterm:3:0))
Line 575:
(charterm-cursor 3 6)
(displayln "Hello World"))
</syntaxhighlight>
</lang>
 
=={{header|Raku}}==
(formerly Perl 6)
Assuming an ANSI terminal:
<syntaxhighlight lang="raku" perl6line>print "\e[6;3H";
print 'Hello';</langsyntaxhighlight>
 
=={{header|Retro}}==
<langsyntaxhighlight Retrolang="retro">with console'
: hello 3 6 at-xy "Hello" puts ;</langsyntaxhighlight>
 
=={{header|REXX}}==
Line 591:
<br>added the functionality via different methods &nbsp; (such as functions and/or subroutines).
{{works with|PC/REXX, Personal REXX}}
<langsyntaxhighlight lang="rexx">/*REXX program demonstrates moving the cursor position and writing of text to same place*/
 
call cursor 3,6 /*move the cursor to row 3, column 6. */
Line 601:
 
call scrwrite 40,60,'Hello.',,,14 /*another method ... in yellow. */
exit 0 /*stick a fork in it, we're all done. */</langsyntaxhighlight>
 
=={{header|Ring}}==
<langsyntaxhighlight lang="ring">
# Project : Terminal control/Cursor positioning
 
Line 611:
next
see " Hello"
</syntaxhighlight>
</lang>
Output:
<pre>
Line 624:
=={{header|Ruby}}==
{{libheader|curses}}
<langsyntaxhighlight lang="ruby">require 'curses'
 
Curses.init_screen
Line 634:
ensure
Curses.close_screen
end</langsyntaxhighlight>
 
=={{header|Scala}}==
{{Works with|Ubuntu|14.04}}
<langsyntaxhighlight lang="scala">object Main extends App {
print("\u001Bc") // clear screen first
println("\u001B[6;3HHello")
}</langsyntaxhighlight>
 
=={{header|Seed7}}==
Line 648:
''SetPos'' is based on terminfo respectively the Windows console API.
 
<langsyntaxhighlight lang="seed7">$ include "seed7_05.s7i";
include "console.s7i";
 
Line 662:
# the program waits until Return/Enter is pressed.
readln;
end func;</langsyntaxhighlight>
 
=={{header|Tcl}}==
<langsyntaxhighlight lang="tcl">exec tput cup 5 2 >/dev/tty
puts "Hello"</langsyntaxhighlight>
 
=={{header|UNIX Shell}}==
 
<langsyntaxhighlight lang="sh"># The tput utility numbers from zero, so we have subtracted 1 from row and column
# number to obtain correct positioning.
tput cup 5 2</langsyntaxhighlight>
 
=={{header|Whitespace}}==
Using ANSI escape sequence, where ESC[y;xH moves curser to row y, col x (see below):
<langsyntaxhighlight lang="whitespace">
Line 710:
 
</syntaxhighlight>
</lang>
 
This solution was generated from the following pseudo-Assembly.
<langsyntaxhighlight lang="asm">push "Hello" ;The characters are pushed onto the stack in reverse order
push "[6;3H"
push 27 ;ESC
Line 728:
 
1:
pop ret ;Pop counter and return</langsyntaxhighlight>
 
=={{header|XPL0}}==
<langsyntaxhighlight XPL0lang="xpl0">include c:\cxpl\codes; \intrinsic 'code' declarations
 
[Cursor(2, 5); \3rd column, 6th row
Text(0, "Hello"); \upper-left corner is coordinate 0, 0
]</langsyntaxhighlight>
 
=={{header|Wren}}==
<langsyntaxhighlight lang="ecmascript">System.write("\e[2J") // clear the terminal
System.print("\e[6;3HHello") // move to (6, 3) and print 'Hello'</langsyntaxhighlight>
 
=={{header|Z80 Assembly}}==
Uses Amstrad CPC, but other machines with similar terminal functions can do the job. (The BIOS calls will be different however.)
<langsyntaxhighlight lang="z80">ld hl,&0603 ;6 = ROW, 3 = COLUMN
call &BB75 ;set text cursor according to HL
 
Line 760:
call &BB5A ;print accumulator as an ascii char to screen
inc hl ;next char
jr PrintString</langsyntaxhighlight>
 
 
Line 766:
{{trans|C/C++}}
Using ANSI escape sequence, where ESC[y;xH moves curser to row y, col x:
<langsyntaxhighlight lang="zkl">print("\e[6;3H" "Hello");</langsyntaxhighlight>
 
{{omit from|ACL2}}
10,333

edits