C언어에서 표준 입력 함수 scanf를 썼듯이, C++에서는 cin을 사용한다.



cin은 scanf 와 달리 변수와 입력이 맞지 않으면 입력이 되지 않고, cin 의 return 값으로 체크할 수 있다.


출력 결과

k <- 입력

107

3 <- 입력

3

2 <- 입력

2

k <- 입력


scanf로는 int 형 변수에 char가 들어가지만, cin으로는 들어가지도 않고 cin이 false를 retrun한다. 유사하게 cin.fail() 함수는 입력 실패시 true를 리턴한다.

cin.clear() 는 이 에러 플래그를 지우는 역할을 한다.


cin 과 string 변수


cin >> string 변수를 할 경우 띄어쓰기 전 까지만 들어가게 된다. 따라서 띄어쓰기를 포함한 문장 한 줄을 넣고 싶다면 getline(cin, string 변수) 를 이용해야 한다.



출력 결과

Hello world again! <- 입력 문자열

str1: Hello

str2:  world again! 


이때 말한 대로 getline을 이용할 경우 띄어쓰기를 포함하여 string 변수에 입력이 되지만, 처음에 입력한 "Hello world again!"에서 str1 에 들어간 이후부터 자동으로 입력이 되어 버린다. 이를 막기 위해서는 C에서 fflush 처럼 입력버퍼를 비워줄 필요가 있다.


cin.ignore(int n, char c)는 n byte 만큼 또는 c 문자를 만날때까지 버퍼를 지운다.



Hello world again! <- 입력

str1: Hello

Hello world again! <- 입력

str2: Hello world again! 



'프로그래밍 > C++' 카테고리의 다른 글

인라인 함수  (0) 2017.10.08
함수 오버로딩  (0) 2017.10.08
디폴트 파라미터  (0) 2017.10.08
printf 형식지정자  (0) 2017.10.03
표준 출력 cout  (0) 2017.08.06

+ Recent posts