[숏코딩] 함수 반환값 이용하기
숏코딩에서는 함수 반환값을 많이 사용한다.
이 글에서는 함수의 반환값을 이용하는 여러 예를 소개하고자 한다.
파일 끝날 때까지 입력받기
while(~scanf("%d",&n))printf("%d",n);
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한다.
puts()의 인자는 출력할 주소이기 때문에 그냥 저렇게 쓰면 된다.
비슷한 원리로
printf("%d",atoi(gets(s)));
도 가능하다.