EOF란 end of file의 약자이다
입력이 끝나는 여부를 판단하기 위해서는 cin.eof()를 사용할 수 있는데,
파일의 끝까지 읽은 뒤 다음 파일을 읽으려고 할 때 파일이 끝나 읽을 데이터가 없을 때 eof가 된다(true 반환)
* 입력 파일을 따로 생성해서 읽지 않는 경우, ctrl + z 키를 이용해 eof 상태를 전송해 줄 수 있다
string str;
while(!cin.eof())
{
getline(cin, str);
// Or
cin >> str;
}
위와 같은 방법으로 입력이 끝날 때까지 while문을 돌며 입력을 받도록 할 수 있다
혹은 아래와 같이 더 간결하게 변경할 수 있다
string str;
while (cin >> str)
{
cout << str << '\n';
}
// getline 헤더 파일
#include <string>
string str;
while (getline(cin, str))
{
cout << str << '\n';
}
기본적으로 스트림 연산 후에는 스트림 객체를 반환하는데, 스트림이 조건문 안에 들어가 있는 경우 bool 타입을 반환하게 된다(기본은 true, eof 등 정상이 아닌 상태인 경우 false를 반환)
따라서 입력 스트림을 while문 안에 넣으면 입력이 종료되어 EOF 전달과 동시에 false를 반환하게 되어 반복문이 자동으로 종료된다
'Programing > C++' 카테고리의 다른 글
[C++] 최대공약수(GCD), 최소공배수(LCM) 구하기 (0) | 2025.01.27 |
---|---|
[C++] priority_queue (0) | 2025.01.23 |
[C++] 반올림, 올림, 내림, 소숫점 n번째 자리에서 반올림 (round, ceil, floor, fixed, precision) (0) | 2025.01.22 |