-
[C++] EOF 입력받기Programming/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; }
'Programming > C++' 카테고리의 다른 글
[C++] getline() - 한 줄 입력받기 (0) 2021.06.22 [C++ STL] 리스트(List) (0) 2020.08.08 [C++ STL] 템플릿(Template) (0) 2020.08.05