하루하루 꾸준히, 인생은 되는대로

알고리즘

cin getline과 cin.ignore(), cin.fail(), cin.clear()

긤효중 2022. 6. 4. 19:37

C++ string의 getline 함수

 

공백,특수문자를 포함한 한 줄 입력을 받을 떄 사용된다.

<string>헤더파일에 있는 getline함수는 

 

 std::getline(istream& is, string& str, char delim)  의 형태를 갖는다.

istream&is는 파일입력 또는 표준 입출력, string&str은 문자열을 저장할 string변수,char delim은 하나의 문자를 지정해서

그 문자까지 저장 할 수 있다.

 

cin이 '\n'를 만나는 경우

이 경우 '\n'을 처리하지 않고 입력 버퍼에 남겨둔다.

getline은 '\n'을 입력버퍼에서 가져와서 처리한다.

 

getline을 한 후 개행문자 '\n'을 만난 경우에 남은 '\n'을 제거해줘야 하는데 

cin.ignore()을 이용해서 제거할 수 있다.

 

cin.fail()

cin.fail()함수는 숫자형 변수에 문자를 넣으라는 코드와 같이 올바르지 않은 시도가 이루어질 때 1을 반환한다.

cin.clear()는 내부상태 플래그를 초기화하여서 cin이 올바른 동작을 하도록 한다.

 

 

'알고리즘' 카테고리의 다른 글

백준 11008 복붙의 달인 C++  (0) 2022.06.06
백준 18429 근손실 C++  (0) 2022.06.04
백준 14405 피카츄 C++  (0) 2022.05.30
백준 1343 폴리오미노 C++  (0) 2022.05.29
백준 2502 떡 먹는 호랑이 C++  (0) 2022.05.25