Drücken Sie eine beliebige Taste, um fortzufahren

36

Ihre Aufgabe ist es, ein Programm zu erstellen , die den folgenden Text werden angezeigt, wartet auf den Benutzer eine Taste drücken (es okay ist , Tasten wie zu ignorieren ctrl, alt, caps locketc., solange Tasten wie letters, numbers, symbolsund enterwerden nicht ignoriert), und beenden Sie dann das Programm:

Press any key to continue... 

Nachgestellte Zeilenumbrüche sind zulässig. Das Programm muss sofort nach dem Drücken einer Taste beendet werden. Außerdem muss das Programm ziemlich portabel sein (dh es dürfen keine betriebssystemspezifischen Header oder Module außerhalb einer IDE usw. ausgeführt werden).


Die Eingabeaufforderung muss genau wie oben gezeigt sein, es sei denn, eine nachgestellte Zeile kann nicht vermieden werden.


Das ist , also gewinnt die kürzeste Antwort in Bytes. Dies ist auch meine erste Code-Golf-Frage. Ich entschuldige mich, wenn ich die Regeln für PPCG nicht kenne.

ckjbgames
quelle
4
Ist der Ausgabetext von Groß- und Kleinschreibung abhängig? Wäre WinBatch PAUSEeine gültige Antwort ( Auslassungspunkte von ...bis . . .)?
FlipTack
13
Außerdem würde ich vorschlagen, ein oder zwei Wochen zu warten, bevor ich eine Antwort
annehme
3
Die meisten pauseSprachfunktionen sind wahrscheinlich unempfindlich gegenüber Tasten wie Feststelltaste oder Steuerung (allein gedrückt). Vielleicht sollten Sie klären, ob das Programm diese Tasten nicht bemerken darf
Luis Mendo
15
Du solltest ein paar Wochen warten, bevor du eine Antwort
annimmst
12
@JungHwanMin Ich stimme anderen zu. Bitte warten Sie, bis die Beiträge
eingegangen sind

Antworten:

5

SmallBasic, 18 - 17 Bytes

  • Version 2.0

17 Bytes

TextWindow.Show()
  • Version 1.0

18 Bytes

TextWindow.Pause()
Roman Gräf
quelle
3
Könntest du das nicht auch einfach machen TextWindow.Show()? Basierend auf dieser Seite sollte das den gleichen Effekt haben.
Suever
20

Batch, 46 Bytes

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

Denn pausedie Ausgabe enthält jeweils ein Leerzeichen ..

Neil
quelle
5
Schöne Weiterleitung. Könnten Sie die Ausgabe auch beispielsweise an senden x? Dann würde eine Datei xerstellt, die den Text enthält Press any key to continue . . .. Spart 2 Bytes, aber ich bin mir nicht sicher, ob dies gegen diese Herausforderung oder gegen Standardlücken verstößt.
Steenbergh
Ich bin seit @choice /n /m Press any key to continue...einiger Zeit auf choice.exe-freiem System, aber ich habe das Gefühl, dass es vor einigen Jahrzehnten auch möglich war.
Manatwork
Die Auswahl hat Standardwerte wie J und N, daher würde das Programm nur fortgesetzt, wenn J oder N gedrückt werden, wenn ich mich richtig erinnere.
Geisterfurz007
@ geisterfurz007 Außerdem ist der Standardwert lokalisiert. Zum Beispiel ist für mich choicegleichbedeutend mit choice /c SN(für sim(ja) und não(nein) in Portugiesisch).
Ismael Miguel
Ah, du hast recht, @ geisterfurz007. Jetzt erinnere ich mich, wie albern meine Stapeldateien aussahen, bei denen das gesamte Alphabet aufgezählt war. Ok, dann war das eine tote Idee.
Manatwork
15

HTML + JavaScript (ES6), 36 + 25 = 61 Byte

Sie können ein JavaScript-Programm nicht wirklich beenden, daher ist das Löschen der Webseite das Beste, was ich mir vorstellen kann.

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


HTML + JavaScript (ES6), 33 + 28 = 61 Byte

Alternative von @LarsW vorgeschlagene Lösung , die zu umleitet about:blank.

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


HTML / JavaScript, 60 Byte

Eine weitere großartige Lösung von @Ismael Miguel , die kein eigenständiges JS verwendet. 1 Byte gespeichert!

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


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

Noch eine andere Lösung von @George Reith , die das Schreiben von Dokumenten nutzt.

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

HTML + JavaScript (ES7), 23 + 28 = 51 Byte

Gleiches Programm mit dem vorgeschlagenen ES7-Bindungsoperator :

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


Da die meisten dieser Lösungen nicht von mir stammen, machen Sie bitte eine Höflichkeitserklärung und stimmen Sie sie in den Kommentaren ab!

darrylyeo
quelle
10
36 + 25 ist 61 oder vermisse ich etwas?
2
@ LarsW, ckjbgames Nun, wie stehen die Chancen? Man weiß es nie, bis man es schreibt! ;)
darrylyeo
2
<html onkeyup=this.innerHTML=''>Press any key to continue...<- 60 Bytes. Versuchen Sie es auf jsfiddle.net/xhb69401 (es funktioniert mit beiden <html>und <body>)
Ismael Miguel
2
Kürzere Methode zum Löschen des Dokuments und benötigt keinen Anker. onkeyup=_=>document.open()mit Press any key to continue...für eine Gesamtsumme von 54 Bytes.
George Reith
2
Auch mit dem von es-next vorgeschlagenen Bindungsoperator könnte er auf reduziert werden onkeyup=::document.open.
George Reith
14

MATL, 35 Bytes

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

Erläuterung

'Press any key to continue...'      % String literal
D                                   % Display the string (has trailing newline)
0$Y.                                % Pause until the user presses any key
Suever
quelle
@ LuisMendo Ah guten Fang
Suever
2
Auf der anderen Seite Y.auch nicht. Vielleicht sollte das OP klarstellen. Tasten wie Steuerung und Feststelltaste
Luis Mendo
1
@ LuisMendo Es ist in Ordnung, Bedientasten, Feststelltaste usw. zu verpassen.
ckjbgames
@LuisMendo Wäre für Ihre Änderung keine Eingabetaste erforderlich? Oder vielleicht erinnere ich mich falsch
Suever
@ Suever Oh, natürlich! Eintreten ist erforderlich
Luis Mendo
11

TI-Basic, 55 Byte

Grundsätzlich wird eine Schleife ausgeführt, bis eine Taste gedrückt wird. Schade, dass Kleinbuchstaben in TI-Basic jeweils zwei Byte lang sind ...

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

PS Siehe den Kommentar von @GoldenRatio für die Erklärung, wie dies funktioniert. Es ist ein Genie!

Timtech
quelle
Erstens ist Ihre Byteanzahl derzeit deaktiviert, das sind 55 Bytes (haben gerade ein Programm auf TI-84 + erstellt und getestet). Zweitens ist dies technisch nicht gültig, da es nicht angezeigt wird. Drücken Sie eine beliebige Taste, um fortzufahren. Stattdessen werden 15 Zeichen plus angezeigt. Um die Byteanzahl beizubehalten, führen Sie stattdessen zwei disp-Befehle aus. :Disp "Press any(Vergessen Sie nicht: in Ihrem Code zählt es) und Disp "key to continuesin((Die Sünde zwingt einen ... in 1 Byte, die neue Zeile und die neue Anzeige auszugleichen, und das spart Platz zwischen any und key)
Golden Ratio
Schlagen Sie mich zu dieser ersten Sprache, an die ich gedacht habe.
C Anderson
Vielen Dank für den Tipp @GoldenRatio, ich glaube, ich dachte, getKeyes wären 2 Bytes, wenn es tatsächlich 1 ist. Ich nehme an, Text(oder Output(Sie könnten alles in eine Zeile schreiben . Aber dein Vorschlag ist besser. Ich habe nicht daran gedacht, die impliziten Auslassungspunkte am Ende einer Zeile zu verwenden. Nochmals vielen Dank, ich werde das jetzt bearbeiten.
Timtech
Vielen Dank für die Aktualisierung, und ich denke, die Verwendung von disp mit einem Komma hat schließlich einen guten Grund, da es nie Bytes gespeichert hat. Ich setze sie normalerweise in getrennte Zeilen, weil ich die Tendenz habe, den Clear-Button zu drücken: D. Gibt es auch eine offizielle Methode zum Ermitteln der Größe? Damit meine ich, sollten die 9 Bytes, die ich nicht für einen Programmnamen gezählt habe, gezählt werden? Und sollte das 1 Byte für den Start-Doppelpunkt, der nicht gelöscht werden kann, zählen? Ich habe das als 0 Bytes markiert, weil ich es gewohnt bin, 10 für die Programmgröße zu subtrahieren, um Platz zu finden, aber vielleicht sollte der Doppelpunkt zählen.
Goldener Schnitt
Nein, im Grunde genommen, wenn Sie ein vollständig leeres Programm erstellen, das für 0 Bytes zählt, dann beginnen Sie von dort aus. Das wäre wie das Zählen des Dateinamens einer Quelldatei. Außerdem dient der beginnende Doppelpunkt nur zur Anzeige und ist eigentlich kein Teil des Programms. Tatsächlich zeigt jede neue Zeile automatisch einen Doppelpunkt im Editor auf dem Taschenrechner an, aber auch diese dienen nur zur Anzeige (versuchen Sie den cemetech-Quellcode, um zu sehen, was ich meine). Zuletzt ist der Bytecount der gleiche, unabhängig davon, ob wir ihn Dispauf zwei Zeilen aufteilen oder nicht (dies ist jedoch nicht immer der Fall).
Timtech
8

Bash, 46 43 42 Bytes

1 Byte dank @DigitalTrauma gespeichert

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

Verwendet die readeingebaute. -rStellt sicher, dass der Benutzer keine Escape-Zeichen eingeben kann. -n 1erlaubt nur ein Zeichen. -pist die Eingabeaufforderung

Downgoat
quelle
Fährt erst fort, wenn ich <cr> tippe
Glenn Randers-Pehrson
@ GlennRanders-Pehrson Ich glaube, das kann passieren, wenn deine Bash nicht unterstützt -n 1. Es funktioniert jedoch ohne Eingabetaste für mich (v3.2.57) und auf meinem Debain-Rechner (v4.3.30)
Downgoat
Funktioniert auch nicht, wenn ich ein Zitat (")
eingebe
1
Funktioniert einwandfrei, wenn ich die Zeile in eine Datei (anykey.sh) lege und diese ausführe. Funktioniert auch dann einwandfrei, wenn ich das Leerzeichen zwischen "-rn" und "1" entferne.
Glenn Randers-Pehrson
1
-rn1speichert 1 Byte
Digitales Trauma
8

Haskell , 51 50 Bytes (Danke @ villou24)

main=putStr"Press any key to continue...">>getChar

Probieren Sie es online!

Erik
quelle
6
Das wartet auf die Eingabe. Sie können getCharstattdessen verwenden.
Christian Sievers
1
Sie können ein Byte speichern, indem Sie das Leerzeichen zwischen putStrund der Zeichenfolge entfernen .
villou24
Lassen Sie den Antwortenden seinen eigenen Beitrag, @ckjbgames, bearbeiten, tun Sie es nicht für ihn
MildlyMilquetoast
5

Oktave / MATLAB, 42 Bytes

disp('Press any key to continue...');pause
Suever
quelle
Ich habe diese Antwort vor einem Monat hochgestuft, vorausgesetzt, sie war optimal ... Aber du warst überfordert :)
Stewie Griffin
4

QBasic ( QB64 ), 37 (42?) Bytes

Leider hat die eingebaute Programmende-Eingabeaufforderung von QBasic keine Auslassungspunkte, daher müssen wir sie selbst ausdrucken:

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

( SLEEPOhne ein Argument wartet bis ein Tastendruck.)

Dieser Code macht das, wonach die Frage buchstäblich fragt, aber es sieht nicht so aus, als würde er zum Grundgedanken der Frage passen, da QBasic dann "Drücken Sie eine beliebige Taste, um fortzufahren" anzeigt und auf einen Tastendruck wartet, bevor Sie zur IDE zurückkehren. Hier ist eine, die für +5 Bytes direkt an die IDE geht:

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

STOPist eine Debugging-Anweisung. In QBasic wird ein Haltepunkt gesetzt: Die Ausführung wird angehalten und wir kehren zur IDE zurück, die Ausführung kann jedoch mit F5 wieder aufgenommen werden. Es ist unklar, ob dies als "Verlassen" des Programms gelten würde. Ich verwende jedoch den QB64-Emulator, der keine Haltepunkte ausführen kann. Bei einer Begegnung STOPwird es einfach angehalten - ohne die redundante Meldung "Drücken Sie eine beliebige Taste" kehren Sie direkt zur IDE zurück.

DLosc
quelle
Seltsamerweise wird die Meldung "Drücken Sie eine beliebige Taste, um fortzufahren" auch angezeigt, wenn Sie eine eigenständige QB64-Exe ausführen. Ich habe versucht, LOCATEnur die Punkte danach zu drucken, aber QBasic löscht die gesamte unterste Zeile, wenn diese Meldung
gedruckt wird
4

Verarbeitung, 89 81 Bytes

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

Erläuterung

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

Dies ist erforderlich, da ich in meinem Programm mehrere Funktionen verwende. Alles drinnen setup()wird aufgerufen, in diesem Fall der String "Press any key to continue...".

if(key>0)exit();

Prüft, ob key( keyenthält immer den int-Wert der zuletzt gedrückten Taste) mehr als 0(dh kein Null-Byte) ist. Wenn die Bedingung erfüllt ist, wird das Programm beendet.

void draw(){}

draw() stellt sicher, dass das Programm immer nach einem Schlüssel sucht, anstatt zu stoppen, sobald das Programm gestartet wird.

(Das Gefühl, wenn eine in einer Java-ähnlichen Sprache eingebaute Sprache noch wortreich ist ...)

Kritixi Lithos
quelle
Ich kenne die Verarbeitung nicht wirklich , aber ich denke, Sie sollten in der Lage sein, void steup(){...}mitstatic{...}
Pavel
2
@Pavel Nope, funktioniert nicht
Kritixi Lithos
4

Pascal, 75 65 Bytes

Dies wurde mit dem Free Pascal Compiler, Version 3.0.0 getestet.
Es funktioniert möglicherweise mit TurboPascal 7 oder neuer.

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

Leider kann ich nicht ersetzen readkeymit , readlnda die Herausforderung erfordert , dass jede Taste angenommen werden.


Ich habe diesen Code unter http://rextester.com/l/pascal_online_compiler mit und ohne Eingabe getestet .
Wie erwartet wird das Programm nach 10s beendet, da es auf einen Tastendruck wartet, der niemals eintritt.


Vielen Dank an @manatwork , der mir 10 Bytes gespart hat, indem er mir das Gegenteil bewiesen hat und mir gezeigt hat, dass ich das nicht brauche program _;.

Ismael Miguel
quelle
Weder FreePascal noch TurboPascal erfordern die Verwendung von programSchlüsselwörtern. (Eigentlich habe ich noch nie eine so alte Implementierung getroffen.)
manatwork
@manatwork Ich habe es ohne probiert programund es hat sich beschwert. Außerdem benutze ich manchmal TurboPascal. Das benötigt man (Hinweis: benötigt ) das programgibt. Wenn Sie einen Ort kennen, an dem ich testen kann, wo es ohne läuft program, werde ich es entfernen. Ich hasse es, es dort zu haben. Und das uses Crt;.
Ismael Miguel
1
Ich verstehe dich nicht. Es funktioniert einwandfrei, einschließlich des von Ihnen verknüpften Rextester-Dienstes. In meiner Befehlszeile: pastebin.com/pVr9dqxd
Manatwork
@manatwork Du hast recht. Ich weiß, warum es sich beschwert hat: Ich habe geschrieben, program;anstatt das Bit tatsächlich zu entfernen. Danke, dass Sie mich darauf aufmerksam gemacht haben.
Ismael Miguel
4

Kratzer, 81 Bytes

Bild

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

( Scratchblocks Link )

Wenn Sie möchten, dass das gesamte Programm gestoppt wird , wenn Sie eine Taste (einschließlich anderer Threads) gedrückt haben, müssen Sie eine hinzufügen stop all. Wenn Sie den say-Dialog loswerden möchten, benötigen Sie einen leeren sayBlock ( stop allfunktioniert auch).

Praktisch, dass Scratch eine integrierte Funktion dafür hat!

Florrie
quelle
4

Bash 48 44 42 Bytes

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

@ mame98 Danke, dass du 4 Bytes gespart hast.

@RaisingAgent Vielen Dank für das Speichern von 2 Bytes.

Abel Tom
quelle
Sie können dies verbessern, indem Sie die Flags addieren read -srn1 -p".."und das letzte Leerzeichen im Promt-Zitat entfernen. Ich bin mir auch nicht sicher, ob du die 's' Flagge
brauchst
1
entferne das letzte Leerzeichen in den Anführungszeichen _&-s
RaisingAgent
@ RaisingAgent Dank, aktualisiert :)
Abel Tom
3

R, 56 Bytes

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

Dies funktioniert in Linux- und OSX-Terminals.

Sven Hohenstein
quelle
3

Ruby (2,3) (+ Stapel), 52 55 54 53 46 Bytes

Jetzt 46 Bytes dank Alexis Andersen.

Hinweis: Unter Windows getestet, funktioniert möglicherweise nicht, wenn kein pauseBefehl vorhanden ist.

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

Erläuterung

Puts der gewünschte Text:

puts"Press any key to continue..."

Beende die Zeile:

;

Führen Sie den pauseBefehl Batch und die Pipe-Ausgabe aus, um nul:

`pause>nul`
notme1560
quelle
Hallo, willkommen bei PPCG. Ich sehe, dass Sie eine Liste von Änderungen im Hauptteil Ihrer Einreichung haben. Während dies auf anderen Websites üblich ist, lassen wir den Verlauf des Posts (abgesehen von den durchgestrichenen Bytes für die Anzahl der Bytes) im Allgemeinen außerhalb des Hauptteils, da jeder den Bearbeitungsverlauf eines Posts sehen kann. Dies scheint ein guter erster Golf zu sein und ich hoffe, Sie haben Spaß hier.
Weizen-Assistent
@ WheatWizard Danke, soll ich die Änderungen dort belassen oder entfernen?
Notme1560
1
Ich denke, dass es für eine viel lesbarere Antwort sorgt, wenn Sie sie entfernen, und ich würde dies persönlich empfehlen.
Wheat Wizard
Sie können dies verkürzen, indem Sie das System durch Backticks ersetzen: ` pause>nul` oder noch kürzer, verwenden Sie einfach gets (es gibt auch keine gute Möglichkeit, ein Backtick in einen Codeblock in einem Kommentar aufzunehmen)
Alexis Andersen
@AlexisAndersen wartet nicht getsauf Eingabe, und nicht irgendein Schlüssel?
Notme1560
3

Java, 127 Bytes

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

Hinweis: Damit dies funktioniert, muss sich die Konsole im Raw-Modus befinden .

Gemeinschaft
quelle
Dann fürchte ich, Ihr Code sollte die Konsole so einstellen, wie es die Perl-Lösung von original.legin tut.
Handarbeit
@manatwork Also, the program must be fairly portable (i.e no OS-specific headers or modules, runs outside of an IDE, etc.)Wenn Sie diesem SO-Link folgen, gibt es keine betriebssystemunabhängige Möglichkeit, dies zu tun. Das heißt, die von Ihnen verknüpfte Antwort ist genauso gültig wie diese.
3

SmileBASIC, 52 Bytes

?"Press any key to continue...
WHILE""==INKEY$()WEND
12Me21
quelle
3

Python 2, 110 Bytes

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

Mathematica, 62 Bytes

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

Erläuterung

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 *)
JungHwan min
quelle
2

SmileBASIC, 55 Bytes

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

Erklärt:

?"Press any key to continue..."  '? means PRINT
@L                               'start of loop
IF INKEY$()!="" GOTO @L          'if no key pressed goto @L
Schnecke_
quelle
WHILE""==INKEY$()WENDist kleiner
12Me21
2

Python 2/3 POSIX, 85 Bytes

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

Python 3, 65 Bytes

Benötigt die Windows-Version von Python.

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

msvcrt.getch () wartet nicht wie input () auf das Drücken der Eingabetaste, sondern gibt die erste gedrückte Taste zurück.

Python-Dokumente für msvcrt.getch (): https://docs.python.org/3/library/msvcrt.html#msvcrt.getch

Vielen Dank an @Fliptack für das Speichern einiger Bytes

Zachary Smith
quelle
Diese Antwort ist ungültig ohne import msvcrtirgendwo
FlipTack
2
Da dies Code-Golf ist, sollten Sie die Kommentare aus Ihrem Code entfernen. Außerdem from msvcrt import* scheint
FlipTack 23.01.17
cool, danke @FlitTack
Zachary Smith
2

Node.js, 102 101 99 Bytes

with(process)stdout.write('Press any key to continue...'),s=stdin,s.setRawMode(1),s.on('data',exit)
George Reith
quelle
Nicht viel Gewinn, nur 1 Zeichen kürzer mit with: pastebin.com/BhrAyq2K
Manatwork
@manatwork Schöne! Das erste Mal withhat mich Bytes (oder Byte) gespeichert
George Reith
1
Jetzt können Sie die geschweiften Klammern entfernen und die Zeilenumbrüche durch Kommas für 2 weitere Bytes ersetzen.
Darrylyeo
Auch wenn ich mich nicht irre, stdout.write`Press any key to continue...`werden in ES6 2 Bytes gespart.
Darrylyeo
@ Darrylyeo Commas Arbeit das ist super danke! Leider kann ein mit Tags versehenes Vorlagenliteral hier nicht verwendet werden, da es tatsächlich in einem Array übergeben wird und process.stdout.writekeine impliziten Konvertierungen in Zeichenfolgen ausführt (nur Fehler).
George Reith
2

Sinclair ZX81 / Timex TS1000 BASIC: Methode 1, ungefähr 41 Bytes

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

Methode 2 ungefähr 38 Bytes

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

Ich bevorzuge Methode 1 wie beim ZX81, es gibt ein Bildschirmflimmern, wenn PAUSEaufgerufen wird, und wenn Sie lange genug wollen (vorausgesetzt, der ZX81 überhitzt nicht oder stürzt ab), wird die Pause irgendwann beendet, wohingegen Methode 1 stecken bleibt Eine Endlosschleife, bis eine Taste gedrückt wird, und kein Bildschirmflimmern.

Ich werde die richtige Anzahl von Bytes herausfinden, die später verwendet werden, wenn ich das richtige Stück BASIC habe, das es mir sagt. Übrigens spart die Verwendung von VAL "x" anstelle der Zahl wertvollen RAM auf einem ZX81 (ich denke, dass dies auch für das ZX Spectrum gilt).

Shaun Bebbers
quelle
Beide Methoden funktionieren auch mit dem Sinclair ZX Spectrum. Der Vorteil ist, dass das Spectrum Groß- und Kleinbuchstaben enthält, während das ZX81 standardmäßig keine Anführungszeichen enthält.
Shaun Bebbers
Methode 2 auf dem Sinclair ZX Spectrum könnte zu kondensieren1 PRINT "Press any key to continue...": PAUSE 4e4
Shaun Bebbers
1
PAUSE 0pausiert für immer.
Neil
Ja, ich habe nicht so lange in Sinclair Spectrum BASIC programmiert, dass ich das vergessen habe. PAUSE 0in ZX81 BASIC pausiert nicht für immer.
Shaun Bebbers
1

Perl 5, 79 Bytes

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

benutzt als:

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

Natürlich keine Preise. Ich bin sicher, dass einige Perl-Leute einen besseren Weg haben werden.

(89 Bytes, wenn auch der Interpreteraufruf in die Zählung einbezogen werden soll)

original.legin
quelle
@Pavel, er hat systemin seinem Bytecount gezählt, also weiß ich nicht, was Sie mit diesem Kommentar gemeint haben.
Dada
1
@ original.legin Ich denke, Perl wird nicht viel besser als das. Ein paar Bytes, die Sie noch spielen können: $|=1ist nicht erforderlich, Sie haben ein Leerzeichen danach print, Sie können die Klammer um die Argumente von setzen read, Sie können Backticks anstelle von system verwenden und schließlich print1 zurückgeben, sodass Sie es anstelle von verwenden können das wörtliche 1im aufruf an read. Also am Ende bekommen wir:perl -e '`stty cbreak`;read STDIN,$a,print"Press any key to continue..."'
Dada
@Dada Du kannst auch 2 Bytes mit rasieren say, obwohl ich denke, dieser Ansatz scheitert an der "portablen" Anforderung. Die beste tragbare Lösung, die ich finden kann, ist perl -MTerm::ReadKey -E'say"Press any key to continue...";ReadMode 3;ReadKey'(52 Bytes + 16 Bytes für -MTerm::ReadKey<space>). Seien Sie vorsichtig, dies wird Ihr Terminal vermasseln, es sei denn, Sie stellen den Lesemodus am Ende mit wieder her ReadMode 1.
ThisSuitIsBlackNot
1
@ThisSuitIsBlackNot Tatsächlich habe ich diese Anforderung bezüglich der Portabilität nicht gesehen. Über say, ich neige dazu, es nicht mehr zu verwenden (ich stimme meistens mit diesem Meta-Post überein ). Nun zurück zu einem kurzen Code, IO::Promptwird kürzer sein als Term::ReadKey(40 + 13 = 53 Bytes): perl -MIO::Prompt -e 'prompt"Press any key to continue... ",-1'. Und es ist sogar noch kürzer als in meinem vorherigen Kommentar vorgeschlagen.
Dada
1
@Dada Ich kann beide Seiten des -EArguments sehen. Als ich das letzte Mal nachgesehen habe, war JBs Antwort seit vier Jahren unbestritten, also bin ich dem gefolgt. Vielleicht muss ich es noch einmal überdenken. Wie für IO :: Prompt, gute Entdeckung! Obwohl es auf meinem Strawberry 5.20.2 unter Windows nicht funktioniert, während Term :: ReadKey dies tut.
ThisSuitIsBlackNot
1

PHP, 73 Bytes

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

Führen Sie es in der interaktiven PHP-Shell aus ( php -a)

ʰᵈˑ
quelle
„Das Programm muss sofort nach dem Drücken einer Taste beendet werden.“
Wartet
1

C #, 101 Bytes

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

Getestet unter Linux, sollte auf jedem System mit den .NET-Bibliotheken und der Common Language Runtime ausgeführt werden.

Ungolfed-Programm:

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
    }
}

STRG, ALT, UMSCHALT werden ignoriert. Die gedrückte Taste wird auf dem Bildschirm wiederholt, wenn sie gedruckt werden kann.

Das Echo kann deaktiviert werden, indem C.Read () durch C.ReadKey (0 <1) ersetzt wird, was weitere 6 Byte kostet.

adrianmp
quelle
1

8. 47 Bytes

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

Dieses Programm ignoriert Tasten wie Strg, Alt, Feststelltaste. Beendet mit Tasten wie Buchstaben, Zahlen, Symbolen und Enter.

Erläuterung

"Press any key to continue..." . cr \ Print message 
con:key                             \ Wait for key input from console  
bye                                 \ Quit program 
Chaos Manor
quelle
Nur unter Windows können Sie 3 Bytes sparencr
Chaos Manor
1

C #, 29 Bytes

class P{static void Main(){}}

Ich bin mir nicht sicher, ob dies als gültig angesehen wird, da Folgendes gedruckt wird:

Drücken Sie eine beliebige Taste, um fortzufahren . . .

Aber es gibt auch eine Stapelantwort , die dies druckt.

TheLethalCoder
quelle
1

Viertens (gviertens), 39 Bytes

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

(Ja, es gibt bereits eine 8. Lösung, diese ist jedoch kürzer)

da ist farfetchd
quelle