https://www.acmicpc.net/problem/10951
(21.08.16)
10951번: A+B-4 - C언어 풀이
[소스코드]
#include <stdio.h>
// [baekjoon] 10951번 - A+B-4
int main() {
int a, b;
while (scanf("%d %d", &a, &b) != EOF) {
printf("%d\n", a + b);
}
return 0;
}
간단해 보이는 문제지만, EOF의 개념을 알아야 풀 수 있는 문제였다.
우선 EOF는 End Of File의 약자인데, 파일의 끝을 표현하기 위한 상수( -1의 값을 가짐)이다.
먼저 scanf에 대해 살펴보면,
scanf는 입력받은 값의 개수를 함수가 종료될 때 반환한다.
scanf("%d %d", &a, &b) 의 경우에는 정상적으로 입력받았을 때 2를 반환하는 것이다.
하지만,
파일이 완전히 끝난 뒤(End Of File)에 더 입력을 받고자 하는 행동이 있을 때는 -1을 반환한다.
이를 이용해서 종료조건이 주어지지 않는 문제를 풀 수 있다.
요약
1. EOF는 파일의 끝을 표현하기 위한 상수
2. scanf는 입력받은 값의 개수를 종료시 반환
3. scanf는 파일이 완전히 끝난 뒤 입력을 받고자 하는 행동이 있을 때는 -1 반환
'학습 정리 > 👨💻 PS Study' 카테고리의 다른 글
[C] 백준 4949번 - 균형잡힌 세상 (0) | 2022.07.08 |
---|---|
[C] 백준 1929번 - 소수 구하기 (에라토스테네스의 체) (0) | 2022.07.08 |
[C] 백준 1283번 - 단축키 지정 (0) | 2022.07.08 |
[C] 백준 1475번 - 방 번호 (0) | 2022.07.07 |
[C] 백준 13015번 - 별찍기 23 (0) | 2022.07.07 |