📖 APS/BOJ
[APS][C++] BOJ B5 10951번 A+B - 4 (feat. EOF)
청월누리
2025. 1. 28. 15:27
https://www.acmicpc.net/problem/10951
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
- 입력은 여러 개의 테스트 케이스로 이루어져 있다.
- 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
- 각 테스트 케이스마다 A+B를 출력한다.
풀이
정수 a와 b를 입력 받고, 두 정수를 더한 수를 출력해주면 되는 간단한 문제이다.
- 단, 테스트 케이스의 개수와 종료 조건이 정해지지 않았다는 점을 주의! >> EOF(End of File)를 사용하라는 의미
- 콘솔 창에서 EOF는 수동으로 넣어줘야 하는데, 윈도우 기준
ctrl+z
코드
#include <iostream>
using namespace std;
int main() {
while (true) {
int a, b;
cin >> a >> b;
if (cin.eof()) {
break;
}
cout << a + b << "\n";
}
return 0;
}
결과
오답 원인
- 무한 반복(
while (true)
)으로 풀이 >> 출력 초과 발생 >>while (!cin.eof())
로 변경 후 제출 while (!cin.eof())
의 경우 마지막 출력 값이 한 번 더 출력되는 문제 발생 >>cin.eof() == true
일 때, 반복문을 종료(break;
)하는 방식으로 풀이cin.eof()
의 경우, EOF가 발생하면true
를 반환