Размеры выходного терминала (столбцы и строки) в любом двухзначном десятичном формате *. Например, вывод может быть 80x25
.
Вдохновение . Подскажите .
* Выходные данные должны иметь оба показателя в одной или двух последовательных строках, и может быть не более одной лидирующей и / или конечной строки выходных данных (необязательно сопровождаемой новой строкой). Строки (до четырех) не должны превышать max (столбцы, 1 + len (строка (столбцы)) + len (строка (строки))).
Ответы:
* ш, 9
Выход:
источник
sh
любом случае обозначение не имеет смысла.8086 машинный код, 11 байт (как функция, не конкурирует)
На самом деле не конкурирует, поскольку не имеет видимого результата. Это просто показывает самый короткий способ найти текущие размеры экрана, без шаблонного кода, необходимого для печати.
Как это работает:
8086 машинный код, 48 байт (как полная программа)
Как это работает:
источник
ret
? Кроме того, я не уверен, что тебе позволено бить кулакомds
. Это может потребоваться для Meta, так как функция работает более одного раза, она имеет нежелательные побочные эффекты.RET
инструкцию в конце функции?INT 20h
, а не черезRET
, потому что после POPing выход черезRET
больше не работает.Баш,
2220 символовБлагодаря:
Образец прогона:
источник
echo $COLUMNS\x$LINES
может о / р80x24
xterm, 6 байт
Поскольку вам не нужен конкретный формат, вы можете просто использовать
resize
(6 символов) командуxterm
:источник
#xterm, 6 bytes
.ш, 20 байтов
.. Слишком очевидно, может быть ..
источник
tput lines;!:0 cols
, верно?Python 3 , 30 байт
Поскольку это не работает в TIO, там используется альтернатива:
Попробуйте онлайн!
источник
os
?import os
иos.
короче чемfrom...
.C (только Linux),
6361источник
m[0]
на*m
.m
main(short m){ioctl(0,21523,&m);printf("%dx%d",m,(&m)[1]);}
main(int m){ioctl(0,21523,&m);printf("%x",m);}
будет 46 байтов, с размерами, напечатанными в основании 16 и без разделителя (кроме возможных начальных нулей) между столбцами и строками.APL (Дьялог) , 3 байта
(Опубликовать ответ уже, так как это действительно не моя задача.)
⎕SD
S Creen D imensionsОбразец прогона:
источник
C #, 59 байт
Компилируется в a
Func<int, string
, однако вход не используется.источник
NodeJS,
504846 байтИспользует
process.stdout
scolumns
иrows
значения.источник
console.log([s.columns,s.rows])
.with(process.stdout)console.log(columns,rows)
with(process.stdout)write(columns+[rows])
. Или, если это не считается:with(process.stdout)write(columns+' '+rows)
Рубин,
413621 + 13 = 34 байтаЗапустить с флагом командной строки
-rio/console
Это мой первый Ruby Golf, так что скажите мне, что я могу сделать лучше?
5 байтов сэкономлено благодаря SztupY
2 байта сэкономлено благодаря ручной работе
Это выводит высоту, а затем ширину как список длины два.
Пример вывода:
источник
io/console
, никакая оболочка не будет выполнять нежелательное расширение, если оставить ее без кавычек.GNU Forth, 7 байтов
Пример вывода
Попробуйте онлайн!
источник
C # 94 байта (все приложение)
Весь ответ приложения MetaColon можно значительно сократить:
источник
Режим PowerShell +, 11 байт?
Вывод может быть неприемлемым в текущей форме.
mode
команда утилита окна по умолчаниюMeta Post относительно использования
mode
без указанияcon
получает вывод mode:
затем 4-я и 5-я строки (
[3,4]
) выводятся:источник
(mode)[3,4]-replace"\D"
(mode con)[3..4]
con
необходим? это получает первые строки абсолютно, и я считаю,con
что всегда первым? я бы сказал, чтоstandard
система также будет иметь только один выход для режима, что мы должны предположить?Swift, 99 байт
Спасибо ребятам из Vapor за их консольный пакет .
источник
Пакет,
25191817 байтСэкономили 6 байт, отправив по конвейеру команду «найти».
Сохранено 1 байт благодаря Adám / OP .
Сохранено 1 байт благодаря комментарию OP .
Это выводит саму команду, так как эхо включено, но, как прокомментировал OP , передняя строка в порядке.
В зависимости от вашей настройки, он может работать только с 13 байтами. Тем не менее, кажется, что использование чего-либо с использованием COM-портов приведет к чрезмерно подробному выводу.
источник
s:
→n
.mode
но обнаружил, что добавление `con` короче, чем поиск двух разных наборов символов сfindstr
.@mode|find "L" /i
? Он возвращает строки, столбцы и задержку клавиатуры с 17 байтами вместо 18 выше. Эти лидирующие / конечные линии должны быть пустыми?C #, 85 байт
Если вам нужен целый код приложения, у нас будет
115 10194 байт :Однако вы можете также указать размер буфера , у нас снова будет 85 байт.
Или в целом код приложения (очевидно, снова
115 10194 байта ):Сохранено 14 байт во всем коде приложения с помощью Caius Jard
источник
using c=System.Console;class P{static void Main(){c.WriteLine(c.WindowWidth);c.Write(c.WindowHeight);}}
Java 8 (без библиотек), Windows, 270 байт
Разносить отдельно по рекомендации Адама.
Ungolfed:
источник
cmd/c mode
вместоcmd /c mode
.cmd/c
приводит кCreateProcess error=2
. :(8 ,
241612 байтПересмотрено после комментария Андерса Торнблада.
Возвращает текущий размер консоли в строках и столбцах содержимого стека печати.
Выход:
источник
swap
?Java + * nix, 113
Ungolfed:
ProcessBuilder.inheritIO
заставляет дочерний процесс ввода / вывода наследоваться; это значение по умолчанию в C сexec
. В Java по умолчанию используется «piped». Как вы можете видеть, это намного короче, чем использованиеRuntime.getRuntime().exec()
(которое также не рекомендуется) и созданиеBufferedReader
сквозного длинного и запутанного вызова, который является результатом явного нежелания разработчиков API Java добавить перегрузку для удобства.источник
ProcessBuilder
бы работать на Windows, ноmode
команда выводит более 4 строк :(Красный , 19 байт
Выход:
Можно также получить разрешение экрана, как в предыдущем вопросе
источник
Commodore 64 BASIC, 7 байтов
C64 имеет текстовую консоль фиксированного размера 40 х 25 символов. Нет необходимости запрашивать размер консоли, что хорошо, так как нет способа запросить ее.
источник
Kotlin + Jline 2 , 58 байт
Потому что почему бы и нет. Оказывается, стандартная библиотека на самом деле не имеет возможности определить размер консоли, поэтому необходимо добавить библиотеку, чтобы вы не захотели запустить другой процесс и проанализировать входной поток ... было бы обидно, если бы кто-то сделал это ...
источник
С накоплением , 7 байтов
Оставляет вывод в стеке, как это разрешено по умолчанию. Пример использования:
Бонус:
termdim'x'#`
иметь его117x26
.источник
C (Linux, только C89),
4541вдохновлено https://codegolf.stackexchange.com/a/118696/42186 @dieter
это выводит размер в виде двоичных данных. Не уверен, считается ли это «любым форматом». Вам понадобится что-то дополнительное (less, hexdump, od, ascii table) (или эзотерический эмулятор терминала, который автоматически сделает это за вас), чтобы сделать его читаемым человеком. Пример использования:
Размер терминала составляет 204 столбца на 58 строк.
Спасибо @ Random832 за использование
od
вместоhexdump
.источник