scanf보다 C에서 여러 정수를 읽는 더 좋은 방법


17

골프 도전에서 C에서 4 개의 정수를 읽으려고하는데 해결 해야하는 코드의 길이에 신경 쓰입니다.

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

그것은 29 자이며, 총 코드 크기가 101 자라는 것을 고려하면 엄청납니다. 실제로 필요하지 않기 때문에 첫 번째 int를 제거 할 수 있으므로이 코드를 얻습니다.

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

27 자이지만 여전히 길다.

그래서 내 질문은, 내가 모르는 정수를 읽을 수있는 다른 방법 (트릭, 함수, K & R 물건)이 있습니까?이 코드를 줄이는 데 도움이 될 수 있습니까?

고마워

편집 : 일부 사용자가 내 질문이 C의 골프 팁 과 유사하다고보고했습니다.

이 주제에는 C 코드를 단축하는 유용한 정보가 많이 있지만 입력을 읽는 더 좋은 방법을 제공하지 않기 때문에 실제 사용 사례와 관련이 없습니다.

실제로 여러 정수를 읽는 scanf보다 더 좋은 방법이 있는지 모르겠습니다 (처음에 질문을하는 이유). 그렇다면 질문이 관련이 있고 글로벌과 충분히 다르다고 생각합니다 팁과 요령.

더 좋은 방법이 없다면 누군가가 더 나은 해결책을 찾으면 가까운 미래에 여전히 내 질문이 유용 할 수 있습니다.

EDIT2 : 전체 프로그램 (따라서 기능 트릭 없음)과 가능한 모든 라이브러리를 찾고 있습니다. C ++가 아닌 C 여야합니다. 현재 내 전체 프로그램은 다음과 같습니다.

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

코드를 짧게하고 (이것은 코드 골프입니다 :) C ++이 아닌 한 어떤 트릭도 환영합니다.


4
일반적으로 전체 프로그램 대신 함수를 제출하여 4 개의 정수를 인수로 사용할 수 있습니다.
Denker

귀하의 의견에 감사드립니다.하지만 제 경우에는 전체 프로그램이어야합니다.
BusyBeingDelicious

12
1) @BusyBeingDelicious, PPCG에 오신 것을 환영합니다! :) 2) 가까운 유권자들에게 이것은 일반적인 프로그래밍 질문 이 아닙니다 . 이것은 골프 코드 에 도움을 요청 하는 질문입니다 절대적으로 주제에 관한 .
마틴 엔더

1
C에서의 골프 팁의 가능한 복제
Mego

3
친애하는 유권자 여러분, 이것은 매우 분명한 주제입니다. 왜 아직도 이것을 폐쇄하려고합니까?
DJMcMayhem

답변:


2

제출 한 프로그램 대신 함수를 작성할 수 있습니다. C에서는 int함수 시그니처에서 생략 할 수 있습니다 .

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

9
OP는이 경우 전체 프로그램이어야한다고 의견에 언급했습니다.
Alex A.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.