Posts C언어 eof 처리하는 방법
Post
Cancel

C언어 eof 처리하는 방법

EOF?

EOF는 end of file의 줄임말이다.
주로 이것은 백준 문제를 풀 때
최대 몇개의 입력이 들어오는지 모르는 문제에서 사용된다.

c언어에서 eof를 처리하는 방법은 여러가지이다.
이번 포스트에서는 그 방법들을 알아보자

첫번째 방법

1
2
3
4
5
6
7
8
9
#include<stdio.h>

int main() {
    int x, y;
    while (scanf("%d %d", &x, &y) != EOF) {
        
    }
    return 0;
}

scanfwhile을 같이 사용해서
x와 y의 값이 존재할 때 까지 반복해서 값을 받는 코드이다.

두번째 방법

1
2
3
4
5
6
7
8
9
#include<stdio.h>

int main() {
    int x, y;
    while (scanf("%d%d", &x, &y) == 2) {
        
    }
    return 0;
}

scanf가 입력받은 값의 개수를 리턴하는 것을 이용한 코드이다.
x와 y의 값이 2개 정상적으로 들어올때까지 반복해서 값을 받는 코드이다.

세번째 방법

1
2
3
4
5
6
7
8
9
10
11
#include<iostream>
using namespace std;

int main() {
    int x, y;
    while (!cin.eof()) {
        cin >> x >> y;

    }
    return 0;
}

eof가 아닐때까지 반복을 해주는 코드이다.
다만!! 이 방법은 백준에서 사용하면 안된다.
백준에서 이 방법을 사용하게 되면 런타임 에러가 발생한다.

네번째 방법

1
2
3
4
5
6
7
8
9
10
11
#include<iostream>
using namespace std;

int main() {
    int x, y;
    while (cin >> x) {
        cin >> y;

    }
    return 0;
}

가장 간단한 방법으로 생각된다.
x를 입력받을 수 있을때까지 반복해주는 코드이다.
다만 한가지 값만 입력받았기 때문에 나머지는 while문 안에서 받아줘야 한다.

백준 4419 호주식 투표법 c++

백준 19542 전단지 돌리기 c++

Comments powered by Disqus.