Abmessungen der Ausgabe-Terminals (Spalten und Zeilen) in einem beliebigen 2-stelligen Dezimalformat *. Beispielsweise könnte eine Ausgabe sein 80x25
.
Inspiration . Aufforderung .
* Die Ausgabe muss beide Kennzahlen in einer oder zwei aufeinanderfolgenden Zeilen enthalten, und es darf nicht mehr als eine führende und / oder nachfolgende Ausgabezeile (optional gefolgt von einer neuen Zeile) geben. Die (bis zu vier) Zeilen dürfen nicht länger als max (cols, 1 + len (str (cols)) + len (str (rows)) sein.
Antworten:
* sh, 9
Ausgabe:
quelle
sh
Bezeichnung macht also sowieso keinen Sinn.8086 Maschinencode, 11 Bytes (als Funktion, nicht konkurrierend)
Nicht wirklich konkurrierend, da es keine sichtbare Ausgabe hat. Dies ist nur der kürzeste Weg, um die aktuellen Bildschirmabmessungen ohne den zum Drucken erforderlichen Kesselschildcode zu ermitteln.
Wie es funktioniert:
8086 Maschinencode, 48 Bytes (als vollständiges Programm)
Wie es funktioniert:
quelle
ret
? Ich bin mir auch nicht sicher, ob du Klumpen darfstds
. Dies muss möglicherweise zu Meta übertragen werden, da die Funktion mehrmals ausgeführt wird und nur unerwünschte Nebenwirkungen hat.RET
Anweisung am Ende der Funktion?INT 20h
nicht über beendetRET
wird , sondern über , da das Beenden über nach POPingRET
nicht mehr funktioniert.Bash,
2220 ZeichenDank an:
Probelauf:
quelle
echo $COLUMNS\x$LINES
kann o / p80x24
xterm 6 Bytes
Da Sie kein bestimmtes Format benötigen, können Sie einfach den
resize
(6-stelligen) Befehl verwendenxterm
:quelle
#xterm, 6 bytes
.sh, 20 Bytes
..Zu offensichtlich, vielleicht ..
quelle
tput lines;!:0 cols
, oder?Python 3 , 30 Bytes
Da es in TIO nicht funktioniert, wird dort eine Alternative verwendet:
Probieren Sie es online!
quelle
os
?import os
undos.
ist kürzer alsfrom...
.C (nur Linux),
6361quelle
m[0]
durch*m
.m
ein Argument von mainmain(short m){ioctl(0,21523,&m);printf("%dx%d",m,(&m)[1]);}
main(int m){ioctl(0,21523,&m);printf("%x",m);}
wäre 46 Bytes, mit Größen in der Basis 16 und ohne Trennzeichen (außer möglichen führenden Nullen) zwischen Spalten und Zeilen.APL (Dyalog) , 3 Bytes
(Eine Antwort zu posten, da dies wirklich nicht meine Herausforderung ist.)
⎕SD
S creen D bmessungenProbelauf:
quelle
C #, 59 Bytes
Kompiliert nach a
Func<int, string
, die Eingabe wird jedoch nicht verwendet.quelle
NodeJS,
504846 BytesVerwendet
process.stdout
scolumns
undrows
Werte.quelle
console.log([s.columns,s.rows])
.with(process.stdout)console.log(columns,rows)
with(process.stdout)write(columns+[rows])
. Oder wenn es nicht zählt:with(process.stdout)write(columns+' '+rows)
Ruby,
413621 + 13 = 34 BytesFühren Sie mit dem Befehlszeilenflag aus
-rio/console
Dies ist mein erstes Ruby-Golf, also sag mir, ob ich etwas besseres tun kann.
5 Bytes gespart dank SztupY
2 Bytes gespart dank Handarbeit
Dies gibt Höhe dann Breite als Liste der Länge zwei aus.
Beispielausgabe:
quelle
io/console
sind nicht erforderlich , und keine Shell führt eine unerwünschte Erweiterung durch, wenn sie nicht in Anführungszeichen gesetzt wird.GNU Forth, 7 Bytes
Beispielausgabe
Probieren Sie es online!
quelle
C # 94 Bytes (ganze App)
Die gesamte App-Antwort von MetaColon kann sehr viel gekürzt werden:
quelle
PowerShell + -Modus, 11 Bytes?
Die Ausgabe ist in der aktuellen Form möglicherweise nicht akzeptabel.
Der
mode
Befehl ist ein Standard-Windows-DienstprogrammMeta Post bezüglich der Verwendung von
mode
ohne Angabecon
Liefert die Ausgabe von mode:
dann die 4. und 5. Zeile (
[3,4]
) ausgeben:quelle
(mode)[3,4]-replace"\D"
(mode con)[3..4]
con
notwendig? das bekommt die ersten zeilen absolut und ich glaubecon
ist immer das erste? Ich würde sagen, einstandard
System wird auch nur einen Ausgang für den Modus haben, was ist, was wir annehmen sollten?Schnell, 99 Bytes
Vielen Dank an die Jungs von Vapor für ihr Konsolenpaket .
quelle
Batch,
25191817 Bytes6 Bytes durch direkte Weiterleitung an den Befehl "find" gespeichert.
1 Byte dank Adám / OP gespeichert .
1 Byte dank Kommentar von OP gespeichert .
Dies gibt den Befehl selbst aus, da das Echo eingeschaltet ist, aber, wie von OP kommentiert , ist eine führende Zeile in Ordnung.
Abhängig von Ihrem Setup kann es mit nur 13 Bytes funktionieren. Es scheint jedoch, dass alles, was COM-Anschlüsse verwendet, zu einer übermäßig ausführlichen Ausgabe führt.
quelle
s:
→n
.mode
erst angefangen habe, aber festgestellt habe, dass das Hinzufügen von "con" kürzer war, als nach zwei verschiedenen Zeichengruppen mit zu suchenfindstr
.@mode|find "L" /i
:? Es gibt Zeilen, Spalten und Tastaturverzögerung mit 17 Bytes anstelle der 18 oben zurück. Müssen diese führenden / nachfolgenden Zeilen leer sein?85 Bytes
Wenn Sie einen vollständigen Anwendungscode wünschen, haben wir
115 10194 Bytes :Jedoch Sie könnte bedeuten , Puffergröße als auch, hätten wir 85 Bytes wieder
Oder als ganzer Anwendungscode (offensichtlich wieder
115 10194 Bytes ):Mit Hilfe von Caius Jard 14 Bytes im gesamten Anwendungscode gespeichert
quelle
using c=System.Console;class P{static void Main(){c.WriteLine(c.WindowWidth);c.Write(c.WindowHeight);}}
Java 8 (keine Bibliotheken), Windows, 270 Bytes
Posting separat auf Empfehlung von Adam.
Ungolfed:
quelle
cmd/c mode
stattcmd /c mode
.cmd/c
was zu führtCreateProcess error=2
. :(8. ,
241612 BytesÜberarbeitet nach Anders Tornblad Kommentar.
Gibt die aktuelle Größe der Konsole in Zeilen und Spalten zurück, in denen Stapelinhalte gedruckt werden.
Ausgabe:
quelle
swap
?Java + * nix, 113
Ungolfed:
ProcessBuilder.inheritIO
Bewirkt, dass eine Eingabe / Ausgabe eines untergeordneten Prozesses vererbt wird. Dies ist die Standardeinstellung in C mitexec
. In Java lautet die Standardeinstellung "piped". Wie Sie sehen, ist dies viel kürzer als die VerwendungRuntime.getRuntime().exec()
(die ebenfalls veraltet ist) und das Erstellen einesBufferedReader
langen und verschlungenen Aufrufs, der das Ergebnis der offensichtlichen Abneigung der Java-API-Designer ist, der Einfachheit halber eine Überladung hinzuzufügen.quelle
ProcessBuilder
würde unter Windows arbeiten, aber dermode
Befehl gibt mehr als 4 Zeilen aus :(Rot , 19 Bytes
Ausgabe:
Kann auch die Bildschirmauflösung wie in der vorherigen Frage erhalten
quelle
Commodore 64 BASIC, 7 Bytes
Der C64 verfügt über eine Textkonsole mit einer festen Größe von 40 x 25 Zeichen. Es ist nicht erforderlich, die Konsolengröße abzufragen, was eine gute Sache ist, da es keine Möglichkeit gibt, sie abzufragen.
quelle
Kotlin + Jline 2 , 58 Bytes
Weil warum nicht. Es hat sich herausgestellt, dass die Standard- Bibliothek keine Möglichkeit hat, die Konsolengröße zu bestimmen, so dass ein Abrufen einer Bibliothek erforderlich ist, damit Sie keinen weiteren Prozess starten und den Eingabestream analysieren können .
quelle
Gestapelt , 7 Bytes
Lässt die Ausgabe auf dem Stapel, wie dies standardmäßig zulässig ist. Anwendungsbeispiel:
Bonus:
termdim'x'#`
um es zu haben117x26
.quelle
C (nur Linux, C89),
4541inspiriert von https://codegolf.stackexchange.com/a/118696/42186 von @dieter
Dies gibt die Größe als Binärdaten aus. Ich bin mir nicht sicher, ob dies als "beliebiges Format" gilt. Sie würden etwas extra benötigen (less, hexdump, od, ascii table) (oder einen esoterischen Terminal-Emulator, der dies automatisch für Sie erledigt), um es für den Menschen lesbar zu machen. Anwendungsbeispiel:
Die Terminalgröße beträgt 204 Spalten und 58 Zeilen.
Vielen Dank an @ Random832 für die Verwendung
od
anstelle vonhexdump
.quelle