Lepszy sposób na odczytanie wielu int w C niż scanf


17

Próbuję odczytać 4 int w C w golfowym wyzwaniu i przeszkadza mi długość kodu, który muszę rozwiązać:

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

to 29 znaków, co jest ogromne, biorąc pod uwagę, że mój całkowity rozmiar kodu to 101 znaków. Mogę pozbyć się pierwszej int, ponieważ tak naprawdę jej nie potrzebuję, więc otrzymuję ten kod:

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

który ma 27 znaków, ale wciąż jest długi.

Więc moje pytanie brzmi: czy jest jakiś inny sposób (sztuczki, funkcje, rzeczy K&R), aby odczytać ints, o których nie wiem, może pomóc mi zmniejszyć ten kawałek kodu?

Wielkie dzięki.

EDYCJA: niektórzy użytkownicy zgłosili, że moje pytanie jest podobne do Porad dotyczących gry w golfa w C.

Chociaż ten temat zawiera wiele przydatnych informacji do skrócenia kodów C, nie ma on znaczenia w moim przypadku użycia, ponieważ nie zapewnia lepszego sposobu odczytywania danych wejściowych.

Nie wiem, czy istnieje lepszy sposób niż scanf na odczyt wielu liczb całkowitych (dlatego właśnie zadaję to pytanie), ale jeśli tak, myślę, że moje pytanie jest trafne i wystarczająco inne niż globalne porady i wskazówki.

Jeśli nie ma lepszego sposobu, moje pytanie może być przydatne w najbliższej przyszłości, jeśli ktoś znajdzie lepsze rozwiązanie.

EDIT2: Szukam pełnego programu (więc nie ma sztuczki funkcyjnej) i wszystkich możliwych bibliotek. Musi to być C, a nie C ++. Obecnie cały mój program wygląda następująco:

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

wszelkie triki są mile widziane, o ile skracają kod (to jest kod golfowy :)) i dopóki nie jest to c ++


4
Zwykle możesz przesłać funkcję zamiast pełnych programów, co pozwala ci wziąć te 4 wartości jako argumenty.
Denker

Rozumiem, dziękuję za komentarz, ale w moim przypadku musi to być pełny program.
BusyBeingDelicious

12
1) @BusyBeingDelicious, witamy w PPCG! :) 2) Dla najbliższych wyborców nie jest to ogólne pytanie programowe . To pytanie ze wskazówkami, które prosi o pomoc w kodzie golfowym, które jest absolutnie na temat .
Martin Ender

1

3
Drodzy bliscy wyborcy: To bardzo wyraźnie na temat. Dlaczego nadal próbujesz to zamknąć?
DJMcMayhem

Odpowiedzi:


2

Podczas pisania możesz napisać funkcję zamiast programu. W C możesz pominąć intpodpisy funkcji:

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

9
OP wspomniał w komentarzu, że w tym przypadku musi to być pełny program.
Alex A.
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.