While문과 EOF

2020. 1. 30. 02:34


만약 c++에서 while문을 사용하여 변수의 값을 받을 때,

데이터의 갯수가 정해지지 않는다면 어떻게 할까?

별 다른 데이터 갯수의 제한 없이 무한 루프를 사용한다면 자원 활용은 굉장히 비효율적이게 된다.

 

C였다면 EOF를 사용하였을 것이다. C++에서는 간단하게 하기와 같은 로직을 이용하면 된다.

#include <iostream>
using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    
    int a,b = 0;
    
    while(cin >> a >> b){
        // cin >> a >> b를 작성하면 무한루프가 발생한다.
        // -1(EOF)를 입력하면 while문을 빠져나오게 된다.
        // 특정 조건(ex : 0입력시 종료)은 말 그대로 if를 세워주면 된다. 
        cout << a+b << "\n";
    }
    
    return 0;
}

*EOF = End Of File (-1을 의미)

프로그램에서 데이터의 입력 갯수가 정해지지 않을 때, 프로그램에서 파일의 끝을 만났음을 알리기 위해

매크로에서 정의 된 EOF값을 리턴한다.

 

 

 

'👩🏻‍💻 Programming > C++' 카테고리의 다른 글

Find()와 Substr()  (0) 2020.02.10
공백이 포함된 문자열 받기  (0) 2020.02.10
아스키코드  (0) 2020.02.09
C++ 소수점 반올림  (0) 2020.02.02
Cin과 Cout  (0) 2020.01.27