getline과 I/O
상황에 따른 입력 방식을 알아보자.
Case 1
- 몇 개를 입력받을 지 모르는 경우
while문을 이용해서 EOF임을 이용하거나, cin » a » b 가 입력이 되어야지만 참이고 입력이 불가하면 거짓이 된다는 판정을 이용해서 이런식으로 입력받을 수 있다.
while(cin»a»b)
**cin 함수는 객체를 반환하는데, while이나 if문 안에서는 예외적으로 bool형 자료형을 반환한다.
Case 2
- 공백이 있는 문자열을 입력받는 경우
getline 함수를 이용한다. getline 함수는 띄어쓰기까지 포함해서 문자열로 저장 가능하다.
cin.getline(A, B, C);
인수 설명
- A : cin 이 입력받은 문자열을 저장하는 변수명
- B : 해당 문자열의 크기
- C : 입력받은 문자들을 어디까지 저장할지(index) 결정
예를 들어, str이라는 사이즈 101짜리의 문자열에 엔터(‘\n’)가 나올 때까지 입력받게 하려면 다음과 같다.
cin.getline(str, 101, ‘\n’);
*파생형 : getline(cin,str,s); // 표준입력방식(cin)으로 str라는 변수에 ‘s’가 나올때까지 저장