Besser als scanf, um mehrere Int in C zu lesen


17

Ich versuche, 4 Zoll in C in einer Golfherausforderung zu lesen, und die Länge des Codes, den ich brauche, um ihn zu lösen, stört mich:

scanf("%d%d%d%d",&w,&x,&y,&z)

Das sind 29 Zeichen, das ist riesig, wenn man bedenkt, dass meine gesamte Codegröße 101 Zeichen beträgt. Ich kann das erste int loswerden, da ich es nicht wirklich brauche, also bekomme ich diesen Code:

scanf("%*d%d%d%d",&x,&y,&z)

Das sind 27 Zeichen, aber es ist immer noch lang.

Meine Frage ist also, gibt es eine andere Möglichkeit (Tricks, Funktionen, K & R-Zeug), um Ints zu lesen, von denen ich nichts weiß, was mir helfen könnte, dieses Stück Code zu reduzieren?

Danke vielmals.

BEARBEITEN: Einige Benutzer haben berichtet, dass meine Frage Tipps zum Golfen in C ähnlich ist

Dieses Thema enthält zwar viele nützliche Informationen zum Kürzen von C-Codes, ist jedoch für meinen tatsächlichen Anwendungsfall nicht relevant, da es keine bessere Möglichkeit zum Lesen von Eingaben bietet.

Ich weiß nicht, ob es tatsächlich einen besseren Weg gibt als scanf, um mehrere Ganzzahlen zu lesen (deshalb stelle ich die Frage an erster Stelle), aber wenn ja, denke ich, dass meine Frage relevant ist und sich hinreichend von der globalen Frage unterscheidet Tipps und Tricks.

Wenn es keinen besseren Weg gibt, kann meine Frage auch in naher Zukunft nützlich sein, wenn jemand eine bessere Lösung findet.

EDIT2: Ich suche ein volles Programm (also keinen Funktionstrick) und alle möglichen Librairies. Es muss C sein, nicht C ++. Derzeit sieht mein gesamtes Programm so aus:

main(w,x,y,z){scanf("%*d%d%d%d",&x,&y,&z)}

Tricks sind willkommen, solange sie den Code verkürzen (das ist Code Golf :)) und solange es nicht C ++ ist


4
Normalerweise können Sie anstelle vollständiger Programme eine Funktion übergeben, mit der Sie diese 4 Zoll als Argumente verwenden können.
Denker

Ich verstehe, danke für deinen Kommentar, aber in meinem Fall muss es ein vollständiges Programm sein.
BusyBeingDelicious

12
1) @BusyBeingDelicious, willkommen bei PPCG! :) 2) Für die nahen Wähler ist dies keine allgemeine Programmierfrage . Dies ist eine Frage mit Tipps , die Sie um Hilfe zum Golfcode bittet , der absolut aktuell ist .
Martin Ender

1
Mögliche Kopie der Tipps zum Golfen in C
Mego

3
Sehr geehrte Nahwählerinnen und Nahwähler, das ist ganz klar ein Thema. Warum versuchen Sie immer noch, dies zu schließen?
DJMcMayhem

Antworten:


2

Sie können eine Funktion anstelle eines Programms als Vorlage schreiben. In C können Sie die intFunktionssignaturen weglassen :

f(w,x,y,z){}

9
Das OP erwähnte in einem Kommentar, dass es in diesem Fall ein vollständiges Programm sein muss.
Alex A.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.