: 개행 문자를 제외한 문자 / 문자열 저장
개행 문자를 입력버퍼에 남겨둔다.
공백이나 개행문자를 입력하면 공백 이전까지의 값만 가져온다.
ex)
string str;
cin>>str;
cout<<str;
-> a b c 를 입력하면 a 만 출력됨
문자 배열이면서 마지막 글자가 '\0' 인 c-string을 입력 받는데 사용한다.
s : 문자열을 받을 배열을 가리키는 포인터
n : 저장할 문자의 최대 갯수
delim : 제한자. 지정한 문자가 나타나면 입력을 멈추고, 제한자는 제외하고 저장
(지정하지 않으면 개행문자로 설정됨)
char a[20];
cin.getline(a,15,'.');
cout<<a;
-> abc.def 를 입력하면 abc만 출력됨
is : 문자들이 추출되어질 istream 오브젝트 (입력 받으려면 cin 사용)
str : 입력받을 문자열들이 저장될 string 오브젝트
delim : 제한자
string str;
getline(cin,str);
cout<<str;
-> abc def 를 입력하면 abc def 그대로 출력됨
int n;
string str;
cin>>n;
getline(cin,str);
-> getline이 실행되지 않음
cin>>n 에서 버퍼에 '\n' (엔터) 가 그대로 남아있기 때문이다.
=> cin.ignore 사용
입력 버퍼의 모든 내용을 제거해줌
int n;
string str;
cin>>n;
cin.ignore();
getline(cin,str);
-> 정상 작동됨
표준 입력 버퍼에서 문자를 하나만 가져오며,
문자 하나만 입력이 가능하고 공백과 개행도 입력으로 포함한다.
s : 문자열을 받을 배열을 가리키는 포인터
n: 저장할 문자의 최대 갯수
delim : 제한자
char c1,c2;
cin.get(c1);
cin.get(c2);
cout<<c1<<c2;
-> a b 를 입력하면 a 가 출력됨 (c2에 공백이 저장됨)
*a b 를 출력하고 싶으면 : 문자열로 입력받아야 함
char a[4];
cin.get(a,4);
cout<<a;
-> a b 입력하면 a b 그대로 출력됨