ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C++] EOF 입력받기
    CS/C++ 2021. 6. 22. 10:22
    반응형

    C 에서는 eof 입력을 보통 다음과 같이 처리했었다.

    while (scanf("%d %d", &a, &b) != EOF){ /* code here */ }

     

    C++ 에서는 cin 객체와 >> operator 로 입력을 받을 때는 eof 의 입력을 다른 방식으로 처리해 주어야 한다.

    while (std::cin >> a >> b) { /* code here */ }

    위와 같이 입력 받으면 eof 를 입력받을 시 반복문이 종료된다.

     

    cin 은 실제 입력을 수행하는 클래스인 istream 클래스 객체이고, >> operator 는 istream 클래스에 정의되어 있는 연산자이다.

    >> operator 는 istream 객체의 값을 추출하여 변수로 넘겨주는 역할을 하고 호출한 자신을 반환한다.

    1 2 를 입력하였을 때

    cin >> a    -> a 에 1 저장, cin 객체는 2 값을 가짐, >> 은 cin 을 반환.

    cin >> b.   -> b 에 2 저장, cin 객체는 NULL 값을 가짐. >> 은 cin 을 반환.

     

     

    C++ 에서 eof 를 입력받는 방식은 여러 가지가 있으며 아래와 같은 방식도 가능하다.

    while (!std::cin.eof ()){
        std::cin>>a>>b;
    }

     

    반응형

    'CS > C++' 카테고리의 다른 글

    [C++] getline() - 한 줄 입력받기  (0) 2021.06.22
    [C++ STL] 리스트(List)  (0) 2020.08.08
    [C++ STL] 템플릿(Template)  (0) 2020.08.05

    댓글 0

Designed by Tistory.