-
백준 / 수학, 구현, 사칙연산 / 10951번(C/C++) / EOF백준 2022. 7. 29. 21:46
https://www.acmicpc.net/problem/10951
10951번: A+B - 4
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
。문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
。입력
입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
。출력
각 테스트 케이스마다 A+B를 출력한다.
#include <stdio.h> int main(void) { int a, b; while (scanf("%d %d", &a, &b) == 2) { printf("%d\n", a + b); } return 0; }
종료 방법
1. 지정된 형식으로 입력되지 않을 시
2. Ctrl+Z > Enter키 세 번
#include <stdio.h> int main(void) { int a, b; while (scanf("%d %d", &a, &b) != EOF) { printf("%d\n", a + b); } return 0; }
종료 방법scanf와 EOF를 같이 사용했을 때, Ctrl+Z > Enter키 세 번을 이용해 종료해줘야 함단, scanf를 사용하지 않았을 때는 Ctrl+Z를 한 번만 눌러도 종료됨
EOF가 아니면 계속해서 scanf를 통해 입력받음
EOF(End Of File)
C언어는 운영체제와 상관없이,
파일의 끝에 도달했을 때 언제나 특별한 값을 반환하도록 합니다.
그 값을 EOF(End Of File)라고 하며, 실제로 이 값은 -1을 나타냅니다.EOF는 파일의 끝을 표현하기 위해 정해놓은 상수로써 -1값을 가짐
(EOF가 <stdio.h> 파일에서 -1로 정의됨)
EOF를 만나기 전까지 쭉 입력을 받게 됨
다음 글의 EOF 부분이 EOF의 이해에 도움이 되었음
출처 http://www.tcpschool.com/c/c_string_io
얼만큼 입력이 들어오는지 갯수가 정해지지 않음
무제한 > while(1)하지만,
while(scanf("%d %d", &a, &b)==2)
scanf를 사용해 int형 형식의 숫자 2개씩 입력받음따라서 지정된 형식이 아닌 문자열 같은 형식이 입력될 시, 종료됨
다음 글을 살펴보면,
https://www.acmicpc.net/board/view/39199- (C/C++) scanf는 EOF를 반환하지, 변수에 저장해주지 않습니다.
+
int c = scanf("%d %d", &a, &b)
printf("%d", c); ->2 개 출력
파이썬의 경우,while True: try: a, b=map(int,input().split()) print(a+b) except: break
ctrl+c 를 누르면 종료됨'백준' 카테고리의 다른 글
백준 / 수학, 구현 / 10818번(C/C++) / 최소, 최대 (0) 2022.07.31 백준 / 수학, 구현 / 1110번(C/C++) / 더하기 사이클 (0) 2022.07.29 백준 / 수학, 구현 / 8393번(C/C++) / for문을 활용한 합 출력 (0) 2022.07.23 백준 / 수학, 구현 / 2739번(C/C++) / 구구단 찍기 (0) 2022.07.23 백준 / 수학, 사칙연산 / 2525번(C/C++) / 오븐 시계 (0) 2022.07.23