[BOJ/C++] 10951 A+B - 4

mani·2023년 5월 19일
0

baekjoon_step

목록 보기
32/73

입력이 끝날 때까지 A+B를 출력하는 문제. EOF에 대해 알아 보세요

EOF(End Of File) - 주어진 입력 파일만 갖고 입력을 받을 때 더이상 읽을 수 있는 데이터가 없는 경우 즉, 파일의 끝일 때를 말함.

헷갈리지 말아야할 것은 Enter(개행)또한 하나의 문자다. (Ascill 코드의 LF)
파일의 끝까지 읽고난 뒤 그 다음 파일을 읽으려 할 때(더 읽으려고 할 때) 읽을 데이터가 없을 때 EOF가 되는 것

  • scanf
    stdio.h의 scanf의 경우는 int반환값이 존재. 반환값은 읽어들인 데이터 개수를 반환하는데 만약 데이터를 읽는 동안 파일의 끝(EOF)에 도달한 뒤 읽고자 하면 -1을 반환.
while(scanf(%d %d", &a, &b) != -1)
  • cin
    cin도 EOF를 발생시키는 데 두가지 방법이 있다.
    - eof()함수
     while(!(cin >> a >> b).eof())
    • 조건문 안에 cin이 있는 경우 연산자 오버로딩에 의해 bool값으로 true 혹은 false값을 반환함(스트림이 정상상태면 true, 아닐 경우 false) (보통은 cin >> a >> b 를 읽은 후 스트림 객체가 반환)
       while(cin >> a >> b)

#include <iostream>

using namespace std;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	int a, b;
	while (cin >> a >> b) {
		cout << a + b << "\n";
	}

	return 0;
}
profile
log

0개의 댓글