숏코딩에서는 함수 반환값을 많이 사용한다.
이 글에서는 함수의 반환값을 이용하는 여러 예를 소개하고자 한다.

파일 끝날 때까지 입력받기

while(~scanf("%d",&n))printf("%d",n);

scanf_return

scanf는 성공적으로 입력받은 인자의 개수를, 첫 번째 인자를 받기도 전에 input failure이 일어나면 EOF를 반환한다.

  • 파일의 끝에서 scanf()가 EOF 반환
  • EOF = -1
  • -1 은 111...1(2)
  • 111...1(2) 의 bit not 은 000...0(2)
  • 000...0(2) = 0
    의 과정을 거쳐 while문은 파일이 끝날 때까지 입력을 받게 된다.
    *숏코딩에서는 while() 대신 for(;;)를 사용한다.

입력 받자마자 출력하기

한 줄을 입력받아서 그대로 출력하는 코드를 짜보자.

scanf("%s",s);printf("%s",s);

문자열 전용 입출력 함수를 쓰면 더 줄일 수 있다.

gets(s);puts(s);

더 줄일 수 있다.

puts(gets(s));

gets_return

gets()는 성공시 그냥 인자로 들어온 주소를 return한다.
puts()의 인자는 출력할 주소이기 때문에 그냥 저렇게 쓰면 된다.

비슷한 원리로

printf("%d",atoi(gets(s)));

도 가능하다.