Naciśnij dowolny klawisz, aby kontynuować


36

Twoim zadaniem jest stworzyć program, który będzie wyświetlany następujący tekst, poczekaj użytkownikowi naciśnięciu klawisza (to jest w porządku, jak ignorowanie klawiszy ctrl, alt, caps lock, itd., Tak długo, jak klucze podoba letters, numbers, symbols, i enternie są ignorowane), a następnie zakończ program:

Press any key to continue... 

Końcowe znaki nowej linii są dozwolone. Program musi wyjść natychmiast po naciśnięciu klawisza. Ponadto program musi być dość przenośny (tzn. Nie może mieć nagłówków ani modułów specyficznych dla systemu operacyjnego, działa poza środowiskiem IDE itp.).


Monit musi być dokładnie taki, jak pokazano powyżej, chyba że nie można uniknąć końcowego znaku nowej linii.


To jest , więc wygrywa najkrótsza odpowiedź w bajtach. To jest również moje pierwsze pytanie dotyczące golfa, więc przepraszam, jeśli nie znam zasad dotyczących PPCG.


4
Czy w wyjściowym tekście rozróżniana jest wielkość liter? Czy WinBatch PAUSEbyłby prawidłową odpowiedzią (elipsa jest przenoszona od ...do . . .)?
FlipTack

13
Radzę też poczekać tydzień lub 2, zanim zaakceptuję odpowiedź
Kritixi Lithos

3
Większość pausefunkcji języka jest prawdopodobnie niewrażliwa na klawisze, takie jak Caps-Lock lub Control (naciśnięta samodzielnie). Może powinieneś wyjaśnić, czy program może nie zauważać tych kluczy
Luis Mendo

15
Powinieneś poczekać kilka tygodni, zanim zaakceptujesz odpowiedź, ponieważ niezliczeni inni ci doradzili (a ty zdecydowałeś się zignorować ich rady)
FlipTack

12
@JungHwanMin Zgadzam się z innymi. Poczekaj, aż zaakceptujesz rozwiązanie, aż wpisy przestaną się
pojawiać

Odpowiedzi:


5

SmallBasic, 18 17 bajtów

  • Wersja 2.0

17 bajtów

TextWindow.Show()
  • Wersja 1.0

18 bajtów

TextWindow.Pause()

3
Czy nie możesz po prostu zrobić TextWindow.Show()? Na podstawie tej strony, która powinna mieć taki sam efekt.
Suever

20

Partia, 46 bajtów

@echo Press any key to continue...
@pause>nul

Ponieważ pausewynik zawiera przed każdym spacją ..


5
Niezłe przekierowanie. Czy możesz również wysłać dane wyjściowe do, powiedzmy x,? Następnie utworzony xzostanie plik zawierający tekst Press any key to continue . . .. Oszczędza 2 bajty, ale nie jestem pewien, czy jest to sprzeczne z tym wyzwaniem lub standardowymi lukami.
steenbergh

Od jakiegoś czasu korzystam z systemu bez pliku.exe, ale mam wrażenie, że @choice /n /m Press any key to continue...było to możliwe jeszcze kilkadziesiąt lat temu.
manatwork

Wybór ma wartości domyślne jako J i N, więc program będzie działał tylko po naciśnięciu J lub N, jeśli dobrze pamiętam.
geisterfurz007 Zatrzymaj ten chaos

@ geisterfurz007 Ponadto wartość domyślna jest zlokalizowana. Na przykład dla mnie choicejest równoważne choice /c SN(dla sim(tak) i não(nie) w języku portugalskim).
Ismael Miguel

Ach, masz rację, @ ​​geisterfurz007. Teraz pamiętam, jak głupio wyglądały moje pliki wsadowe z wyliczonym całym alfabetem. Ok, to był martwy pomysł.
manatwork

15

HTML + JavaScript (ES6), 36 + 25 = 61 bajtów

Naprawdę nie możesz wyjść z programu JavaScript, więc wyczyszczenie strony internetowej jest najlepsze, o czym myślę.

onkeyup=_=>a.innerHTML=''
<a id=a>Press any key to continue...


HTML + JavaScript (ES6), 33 + 28 = 61 bajtów

Alternatywne rozwiązanie sugerowane przez @LarsW, które przekierowuje do about:blank.

onkeyup=_=>location='about:blank'
Press any key to continue...


HTML / JavaScript, 60 bajtów

Kolejne niesamowite rozwiązanie @Ismael Miguel, które nie korzysta z samodzielnego JS. Zapisano 1 bajt!

<html onkeyup=this.innerHTML=''>Press any key to continue...


HTML + JavaScript (ES6), 26 + 28 = 54 bajty

Kolejne rozwiązanie @George Reith wykorzystujące zapisy dokumentów.

onkeyup=_=>document.open()
Press any key to continue...

HTML + JavaScript (ES7), 23 + 28 = 51 bajtów

Ten sam program korzystający z proponowanego operatora powiązania ES7 :

onkeyup=::document.open
Press any key to continue...


Ponieważ większość z tych rozwiązań nie należy do mnie, prosimy o uprzejmość i oddać je w komentarzach!


10
36 + 25 ma 61 lat, czy coś mi brakuje?

2
@LarsW, ckjbgames Cóż, jakie są szanse? Nigdy nie wiesz, dopóki go nie napiszesz! ;)
darrylyeo

2
<html onkeyup=this.innerHTML=''>Press any key to continue...<- 60 bajtów. Wypróbuj na jsfiddle.net/xhb69401 (działa z oboma <html>i <body>)
Ismael Miguel

2
Krótszy sposób na wyczyszczenie dokumentu i nie wymaga zakotwiczenia. onkeyup=_=>document.open()z Press any key to continue...łączną liczbą 54 bajtów.
George Reith,

2
Również w przypadku proponowanego operatora powiązania es-next można go zmniejszyć do onkeyup=::document.open.
George Reith,

14

MATL, 35 bajtów

'Press any key to continue...'D0$Y.

Wyjaśnienie

'Press any key to continue...'      % String literal
D                                   % Display the string (has trailing newline)
0$Y.                                % Pause until the user presses any key

@LuisMendo Ah dobry chwyt
Suever

2
Z drugiej strony Y.też nie. Może PO powinien to wyjaśnić. Klawisze takie jak Control i Caps-lock zawiodą w większości rozwiązań
Luis Mendo

1
@LuisMendo W porządku jest przeoczyć klawisze sterujące, Caps Lock itp.
ckjbgames

@LuisMendo Czy modyfikacja nie wymagałaby klawisza Enter? A może źle to pamiętam
Suever

@ Suver Och, oczywiście! Podanie jest wymagane
Luis Mendo

11

TI-Basic, 55 bajtów

Zasadniczo pętla do momentu naciśnięcia klawisza. Szkoda, że ​​małe litery to dwa bajty w TI-Basic ...

Disp "Press any","key to continuesin(
Repeat getKey
End

PS Zobacz komentarz @GoldenRatio, aby uzyskać wyjaśnienie, jak to działa. To geniusz!


Po pierwsze, twoja liczba bajtów jest obecnie wyłączona, czyli w rzeczywistości 55 bajtów (właśnie stworzyłem program na TI-84 + i przetestowałem). Po drugie, to technicznie nie jest poprawne, ponieważ nie wyświetla Naciśnij żadnego klawisza, aby kontynuować ... i zamiast tego zmniejsza do 15 znaków plus ... Zamiast tego, zachowując liczbę bajtów, uczyń z niego dwie komendy disp. :Disp "Press any(nie zapomnij: w twoim kodzie liczy się) i Disp "key to continuesin((Grzech zmusza ... w 1 bajcie, aby nadrobić nową linię i disp, a to oszczędza przestrzeń między dowolnym a kluczem)
Golden Ratio

Pokonaj mnie do tego pierwszego języka, o którym myślałem.
C Anderson

Dzięki za wskazówkę @GoldenRatio, myślę, że myślałem, że getKeyma 2 bajty, gdy w rzeczywistości jest 1. Przypuszczam, że z Text(lub Output(możesz zmieścić to wszystko w jednym wierszu. Ale twoja sugestia jest lepsza. Nie myślałem o użyciu niejawnej elipsy na końcu linii. Jeszcze raz dziękuję, teraz to zmodyfikuję.
Timtech

Dzięki za aktualizację i myślę, że użycie disp z przecinkiem ma wreszcie dobry powód, ponieważ nigdy nie oszczędzał bajtów. Zazwyczaj umieszczam je na osobnych liniach ze względu na moją tendencję do wciskania wyraźnego przycisku: D. Ponadto, czy istnieje jakaś oficjalna metoda oceniania rozmiaru? Rozumiem przez to, czy 9 ​​bajtów, których nie liczyłem dla nazwy programu, się liczy? I czy należy liczyć 1 bajt dla dwukropka początkowego, którego nie można usunąć? Zaznaczyłem to jako 0 bajtów, ponieważ do znalezienia miejsca przywykłem do odejmowania 10 dla rozmiaru programu, ale może dwukropek powinien się liczyć.
Golden Ratio

Nie, w zasadzie, jeśli utworzysz całkowicie pusty program, liczy się 0 bajtów, a następnie zaczynasz od tego. To byłoby jak policzenie nazwy pliku źródłowego. Początkowy dwukropek jest tylko na pokaz i nie jest tak naprawdę częścią programu. W rzeczywistości każda nowa linia automatycznie pokazuje dwukropek w edytorze na kalkulatorze, ale znowu, są one tylko na pokaz (spróbuj cemetech sourcecoder, aby zobaczyć, co mam na myśli). Na koniec, bajtecount jest taki sam, niezależnie od tego, czy podzielimy Dispdwie linie, czy nie (ale nie zawsze tak jest).
Timtech,

8

Bash, 46 43 42 bajtów

Zapisano 1 bajt dzięki @DigitalTrauma

read -rn1 -p"Press any key to continue..."

Korzysta z readwbudowanego. -rupewnia się, że nie pozwala użytkownikowi na wprowadzanie znaków ucieczki. -n 1pozwala tylko jednej postaci. -pjest monitem


Nie trwa, dopóki nie trafię w <cr>
Glenn Randers-Pehrson

@ GlennRanders-Pehrson Wierzę, że może się to zdarzyć, jeśli twoja bash nie obsługuje -n 1. Działa bez naciskania Enter dla mnie (v3.2.57) i na mojej maszynie debain (v4.3.30)
Downgoat

Nie działa również, jeśli
wpiszę

1
Działa OK, jeśli wstawię wiersz do pliku (anykey.sh) i uruchomię go. Działa również dobrze, nawet jeśli usunę spację między „-rn” a „1”.
Glenn Randers-Pehrson

1
-rn1oszczędza 1 bajt
Digital Trauma



4

QBasic ( QB64 ), 37 (42?) Bajtów

Niestety, wbudowany monit QBasic na końcu programu nie ma wielokropka, więc będziemy musieli go wydrukować:

?"Press any key to continue..."
SLEEP

( SLEEPbez argumentu czeka na naciśnięcie klawisza).

Ten kod robi to, o co pyta dosłownie pytanie, ale nie wydaje się, aby pasował do ducha pytania, ponieważ, oczywiście, QBasic wyświetla „Naciśnij dowolny klawisz, aby kontynuować” i czeka na naciśnięcie klawisza przed powrotem do IDE. Oto jeden, który idzie prosto do IDE, dla +5 bajtów:

?"Press any key to continue..."
SLEEP
STOP

STOPjest instrukcją debugowania. W zwykłym QBasic ustawia punkt przerwania: wykonanie zatrzymuje się i wracamy do IDE, ale wykonanie można wznowić za pomocą F5. Nie jest jasne, czy byłoby to liczone jako program „wychodzący”. Używam jednak emulatora QB64, który nie może wykonywać punktów przerwania. Po napotkaniu STOPpo prostu zatrzymuje się - wraca prosto do IDE bez zbędnego komunikatu „Naciśnij dowolny klawisz”.


Co dziwne, „Naciśnij dowolny klawisz, aby kontynuować” pojawia się również podczas wykonywania samodzielnego exe QB64. Próbowałem po LOCATEprostu wydrukować kropki po nim, ale QBasic usuwa cały dolny wiersz, gdy drukuje ten komunikat ...
steenbergh

4

Przetwarzanie, 89 81 bajtów

void setup(){print("Press any key to continue...");}void draw(){if(key>0)exit();}

Wyjaśnienie

void setup(){print("Press any key to continue...");}

Jest to wymagane, ponieważ w moim programie korzystam z więcej niż jednej funkcji. Wywoływane setup()jest wszystko wewnątrz , w tym przypadku ciąg znaków "Press any key to continue...".

if(key>0)exit();

Sprawdza, czy key( keyzawsze będzie zawierała wartość int ostatniego naciśniętego klawisza) jest większa niż 0(tj. Nie jest bajtem zerowym). Jeśli warunek jest spełniony, program kończy działanie.

void draw(){}

draw() zapewnia, że ​​program zawsze będzie szukał klucza zamiast zatrzymywać się po uruchomieniu programu.

(To uczucie, gdy wbudowane narzędzie w języku Java jest wciąż pełne ...)


Nie bardzo wiem, przetwarzanie, ale myślę, że powinieneś być w stanie wymienić void steup(){...}zstatic{...}
Pavel

2
@Pavel Nope, nie działa
Kritixi Lithos

4

Pascal, 75 65 bajtów

Zostało to przetestowane za pomocą kompilatora Free Pascal, wersja 3.0.0.
Może działać z TurboPascal 7 lub nowszym.

uses Crt;begin write('Press any key to continue...');readkey;end.

Niestety, nie mogę wymienić readkeyz readlnponieważ wyzwanie wymaga, aby każdy klucz zostać zaakceptowane.


Przetestowałem ten kod na http://rextester.com/l/pascal_online_compiler , z lub bez podania danych wejściowych.
Zgodnie z oczekiwaniami program zostaje zakończony po 10 sekundach, ponieważ czeka na naciśnięcie klawisza, które nigdy się nie zdarza.


Dzięki @manatwork za uratowanie mi 10 bajtów przez udowodnienie, że się mylę i pokazanie, że nie potrzebuję program _;.


Ani FreePascal, ani TurboPascal nie wymagają użycia programsłowa kluczowego. (Właściwie nigdy nie spotkałem się z tak starożytną implementacją, która to zrobiła.)
manatwork

@manatwork Próbowałem bez programi narzekałem. Czasami używam TurboPascal. Ten wymaga (zauważ: wymaga ) programtam. Jeśli znasz jakieś miejsce, w którym mogę przetestować, gdzie działa bez niego program, usunę je. Nienawidzę go tam mieć. I że uses Crt;.
Ismael Miguel

1
Nie rozumiem cię Działa dobrze, w tym połączona usługa rextester. W moim wierszu poleceń: pastebin.com/pVr9dqxd
manatwork

@manatwork Masz rację. Wiem, dlaczego narzekało: napisałem program;zamiast faktycznie usunąć ten kawałek. Dzięki za powiadomienie mnie o tym.
Ismael Miguel

4

Scratch, 81 bajtów

image

when gf clicked
say [Press any key to continue...
wait until <key [any v] pressed

( Link Scratchblocks )

Jeśli chcesz, aby zatrzymał cały program po naciśnięciu klawisza (w tym innych wątków), musisz dodać stop all. Jeśli chcesz pozbyć się okna dialogowego powiedz, potrzebujesz pustego saybloku ( stop alldziała również).

Wygodne, że Scratch ma do tego wbudowaną funkcję!


4

Bash 48 44 42 bajtów

read -rn1 -p"Press any key to continue..."

@ mame98 Dziękujemy za zapisanie 4 bajtów.

@ RaisingAgent Dziękujemy za zapisanie 2 bajtów.


Możesz to poprawić, dodając flagi, polub read -srn1 -p".."i usuń ostatnie miejsce w ofercie promt. Poza tym nie jestem pewien, czy potrzebujesz flagi „s”
mame98

1
usuń ostatnie miejsce w cudzysłowie _&-s
RaisingAgent

@ RaisingAgent Dzięki, zaktualizowano :)
Abel Tom

3

R, 56 bajtów

cat('Press any key to continue...');keypress::keypress()

Działa to w terminalach Linux i OSX.


3

Ruby (2.3) (+ partia), 52 55 54 53 46 bajtów

Teraz 46 bajtów dzięki Alexis Andersen.

Uwaga: Testowany w systemie Windows może nie działać, jeśli nie ma pausepolecenia.

puts"Press any key to continue...";`pause>nul`

Wyjaśnienie

Puts wymagany tekst:

puts"Press any key to continue..."

Zakończ linię:

;

Uruchom pausepolecenie Batch i dane wyjściowe potoku, aby nul:

`pause>nul`

Witaj, witaj w PPCG. Widzę, że masz listę zmian w treści swojego zgłoszenia. Chociaż może to być zwyczajowe w innych witrynach, ponieważ każdy może zobaczyć historię edycji postu, generalnie pozostawiamy historię postu poza ciałem (poza przekreśleniami dla liczenia bajtów). Wydaje się, że to dobry pierwszy golf i mam nadzieję, że dobrze się tutaj bawisz.
Wheat Wizard

@WheatWizard Dzięki, czy powinienem tam pozostawić zmiany, czy je usunąć?
notme1560

1
Myślę, że jeśli usuniesz je, będzie to znacznie bardziej czytelna odpowiedź, a ja osobiście poleciłbym to zrobić.
Wheat Wizard

możesz to skrócić, zastępując system backtickami: ` pause>nul` lub nawet krócej, wystarczy użyć get (także, nie ma dobrego sposobu na włączenie backsticka w bloku kodu w komentarzu)
Alexis Andersen

@AlexisAndersen nie getsczeka na wejście, a nie tylko dowolny klucz?
notme1560

3

Java, 127 bajtów

class P{public static void main(String[]a)throws Exception{System.out.print("Press any key to continue...");System.in.read();}}

Uwaga: aby to działało, konsola musi być ustawiona w tryb raw .


Następnie Obawiam kod należy ustawić konsolę tak, jak original.legin „s rozwiązanie Perl robi.
manatwork

@manatwork, Also, the program must be fairly portable (i.e no OS-specific headers or modules, runs outside of an IDE, etc.)jeśli podążysz za linkiem SO, nie ma na to niezależnego sposobu. Oznacza to, że odpowiedź, którą podałeś, jest równie ważna jak ta.

3

SmileBASIC, 52 bajty

?"Press any key to continue...
WHILE""==INKEY$()WEND

3

Python 2, 110 bajtów

import curses as c
s=c.initscr()
c.cbreak()
s.addstr(0,0,'Press any key to continue...')
while not s.getch():1

2

Mathematica, 62 bajty

EventHandler["Press any key to continue...","KeyDown":>Exit[]]

Wyjaśnienie

EventHandler["Press any key to continue...","KeyDown":>Exit[]]
EventHandler[                                                ]  (* Create a new EventHandler *)
             "Press any key to continue..."                     (* Print the dialog text *)
                                            "KeyDown":>Exit[]   (* When a key is pressed down, exit *)

2

SmileBASIC, 55 bajtów

?"Press any key to continue..."@L IF INKEY$()!=""GOTO@L

Wyjaśnił:

?"Press any key to continue..."  '? means PRINT
@L                               'start of loop
IF INKEY$()!="" GOTO @L          'if no key pressed goto @L

WHILE""==INKEY$()WENDjest mniejszy
12Me21

2

Python 2/3 POSIX, 85 bajtów

import sys,tty
print('Press any key to continue...')
tty.setraw(1)
sys.stdin.read(1)

2

Python 3, 65 bajtów

Wymaga wersji Python dla systemu Windows.

from msvcrt import*
print("Press any key to continue...")
getch()

msvcrt.getch () nie czeka na naciśnięcie klawisza Enter tak jak input (), zwraca pierwszy naciśnięty klawisz.

Python Docs dla msvcrt.getch (): https://docs.python.org/3/library/msvcrt.html#msvcrt.getch

Dzięki @Fliptack za zapisanie niektórych bajtów


Ta odpowiedź jest import msvcrtgdzieś
nieważna

2
Ponieważ jest to gra w golfa, należy usunąć komentarze z kodu. Ponadto użycie from msvcrt import* wydaje się być o 1 bajt krótsze
FlipTack

spoko, dzięki @FlitTack
Zachary Smith

2

Node.js, 102 101 99 bajtów

with(process)stdout.write('Press any key to continue...'),s=stdin,s.setRawMode(1),s.on('data',exit)

Niewielki zysk, tylko 1 postać krótsza z with: pastebin.com/BhrAyq2K
manatwork

@manatwork Nice one! Za pierwszym razem withzapisałem bajty (lub bajty)
George Reith

1
Teraz możesz usunąć nawiasy klamrowe i zastąpić podziały linii przecinkami dla 2 kolejnych bajtów.
darrylyeo

Również, jeśli się nie mylę, stdout.write`Press any key to continue...`zapisze 2 bajty w ES6.
darrylyeo

@Darrylyeo przecinki pracy, które są niesamowite dzięki! Niestety, nie można tutaj użyć literału z otagowanym szablonem, ponieważ faktycznie przechodzi on do tablicy i process.stdout.writenie dokonuje niejawnej konwersji na ciąg znaków (tylko błędy).
George Reith,

2

Sinclair ZX81 / Timex TS1000 BASIC: Metoda 1 około 41 bajtów

1 PRINT "PRESS ANY KEY TO CONTINUE..."
2 GOTO (INKEY$<>"")+VAL "2"

Metoda 2 około 38 bajtów

1 PRINT "PRESS ANY KEY TO CONTINUE..."
2 PAUSE VAL "4E4"

Wolę metodę 1, jak w ZX81, gdy PAUSEwywoływany jest migotanie ekranu , a jeśli chcesz wystarczająco długo (pod warunkiem, że ZX81 nie przegrzeje się lub nie zawiesi), pauza w końcu dobiegnie końca, podczas gdy metoda 1 utknie w nieskończona pętla do momentu naciśnięcia klawisza i brak migotania ekranu.

Wyliczę poprawną liczbę bajtów używanych później, kiedy mam odpowiedni BASIC, który mi powie. Nawiasem mówiąc, użycie VAL „x” zamiast liczby pozwala zaoszczędzić cenną pamięć RAM na ZX81 (myślę, że to samo dotyczy ZX Spectrum).


Obie metody będą działać również na Sinclair ZX Spectrum, zaletą jest to, że Spectrum ma duże i małe litery, podczas gdy ZX81 domyślnie nie (i nie ma ani jednego cudzysłowu jako znaku standardowego).
Shaun Bebbers

Metodę 2 na spektrum Sinclair ZX można skondensować1 PRINT "Press any key to continue...": PAUSE 4e4
Shaun Bebbers

1
PAUSE 0zatrzymuje się na zawsze.
Neil,

Tak, nie programowałem w Sinclair Spectrum BASIC tak długo, że o tym zapomniałem. PAUSE 0w ZX81 BASIC nie zatrzymuje się na zawsze.
Shaun Bebbers,

1

Perl 5, 79 bajtów

system "stty cbreak";$|=1;print "Press any key to continue...";read(STDIN,$a,1)

użyty jako:

perl -e 'system "stty cbreak";$|=1;print "Press any key to continue...";read(STDIN,$a,1)'

Oczywiście żadnych nagród. Jestem pewien, że jakaś osoba Perla będzie miała lepszy sposób.

(89 bajtów, jeśli należy również uwzględnić inwokację interpretera)


@Pavel, policzył systemna swoim bytecount, więc nie wiem, co miałeś na myśli z tym komentarzem.
Dada

1
@ original.legin Myślę, że Perl nie zrobi nic lepszego niż to. Kilka bajtów, na które możesz jeszcze grać w golfa: $|=1nie jest to konieczne, masz po nim spację print, możesz upuścić nawias wokół argumentów read, możesz użyć odwrotności zamiast systemu, a na koniec printzwraca 1, więc możesz użyć go zamiast literatura 1w wezwaniu do read. W końcu otrzymujemy:perl -e '`stty cbreak`;read STDIN,$a,print"Press any key to continue..."'
Dada

@Dada Możesz także zgolić 2 bajty say, chociaż myślę, że to podejście nie spełnia wymogu „przenośności”. Najlepsze przenośne rozwiązanie, jakie mogę znaleźć, to perl -MTerm::ReadKey -E'say"Press any key to continue...";ReadMode 3;ReadKey'(52 bajty + 16 bajtów -MTerm::ReadKey<space>). Uważaj, to spieprzy twój terminal, chyba że przywrócisz tryb odczytu na końcu przy pomocy ReadMode 1.
ThisSuitIsBlackNot

1
@ThisSuitIsBlackNot Rzeczywiście nie widziałem tego wymogu dotyczącego przenośności. O say, raczej nie używam go już (zgadzam się głównie z tym postem). Teraz z powrotem do krótkiego kodu, IO::Promptbędzie krótszy niż Term::ReadKey(40 + 13 = 53 bajty): perl -MIO::Prompt -e 'prompt"Press any key to continue... ",-1'. I tak się składa, że ​​jest nawet krótszy niż sugerowałem w poprzednim komentarzu.
Dada

1
@Dada Widzę obie strony -Eargumentu. Ostatnim razem, gdy sprawdzałem, odpowiedź JB była niekwestionowana przez cztery lata, więc po to poszedłem. Może muszę to jeszcze raz odwiedzić. Co do IO :: Monit, dobre znalezisko! Chociaż nie działa na moim Strawberry 5.20.2 w systemie Windows, podczas gdy działa Term :: ReadKey.
ThisSuitIsBlackNot

1

PHP, 73 bajty

echo"Press any key to continue...";$h=fopen("php://stdin","r");fgets($h);

Uruchom go w interaktywnej powłoce PHP ( php -a)


„Program musi wyjść natychmiast po naciśnięciu klawisza.” - To czeka, aż Enter lub zaciemnienie…
manatwork

1

C #, 101 bajtów

using C=System.Console;class P{static void Main(){C.Write("Press any key to continue...");C.Read();}}

Testowany na Linuksie, powinien działać na każdym systemie z bibliotekami .NET i środowiskiem uruchomieniowym Common Language.

Program bez golfa:

using C = System.Console; // creating a shorter alias for the System.Console class

class P
{
    static void Main()
    {
        C.Write("Press any key to continue...");    // prints the message
        C.Read();   // waits for key press
    }
}

CTRL, ALT, SHIFT są ignorowane. Naciśnięty klawisz zostanie wyświetlony na ekranie, jeśli można go wydrukować.

Echa może być wyłączone przez zastąpienie C.Read () z C.ReadKey (0 <1) kosztem dodatkowych 6 bajtów.


1

8th , 47 bajtów

"Press any key to continue..." . cr con:key bye

Ten program ignoruje klawisze takie jak Ctrl, Alt, Caps Lock. Wychodzi z klawiszami takimi jak litery, cyfry, symbole i enter.

Wyjaśnienie

"Press any key to continue..." . cr \ Print message 
con:key                             \ Wait for key input from console  
bye                                 \ Quit program 

Tylko w systemie Windows można zapisać pominięcie 3 bajtówcr
Chaos Manor

1

C #, 29 bajtów

class P{static void Main(){}}

Nie jestem pewien, czy jest to uważane za prawidłowe, ponieważ drukuje:

Naciśnij dowolny klawisz, aby kontynuować . . .

Ale istnieje odpowiedź wsadowa, która również to drukuje.


1

Dalej (gforth), 39 bajtów

." Press any key to continue..."key bye

(Tak, jest już 8. rozwiązanie, ale jest ono krótsze)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.