CPP00 / ex01
std::cin
c++ 에서 표준입력을 받을때 사용하는 함수. <iostream>
에 정의되어 있다.
하지만 std::cin 으로 입력받을 때는 space
까지만 입력되므로, 공백을 포함한 string 형식의 입력을 받을 때는 getline() 함수를 사용해야 한다.
std::getline()
getline() 함수는 std::cin 의 멤버함수인 std::cin.getline()
함수와 <string>
에 정의되어있는 std::getline()
함수가 있다.
오늘 사용한 함수는 std::getline()
함수였는데, 아래와 같이 사용된다.
std::getline(std::cin, firstName[i]);
이처럼 작성하면 firstName[i]
에 표준입력으로 개행까지 받을 수 있다. 원래는 매개변수가 3개로, 마지막에는 마지막 문자를 매개변수로 넣는데 넣지 않으면 디폴트로 마지막 문자를 개행으로 받게 된다.
그런데 함수에서 std::cin
과 std::getline()
을 같이 사용할 경우, std::cin
을 하고 std::getline()
이 실행되게 되면 cin에서 입력한 개행이 버퍼에 남아있어 getline() 함수가 그 개행을 받아버린다. 따라서 std::cin
을 한 이후 개행을 지워줘야 하는데, 그 때 사용하는 함수가 바로 std::cin.ignore(32767, '\n');
이다.
개행을 무시하는 함수인데, 앞의 32767
은 cin::ignore()
함수가 무시할 문자 수다. 이 숫자는 모든 플랫폼에서 2-byte 정수의 가장 큰 값이다.
'개발 > TIL' 카테고리의 다른 글
[230424] Angular - Observable subscribe, Router, ActiveRoute (0) | 2023.04.24 |
---|---|
[230421] 변수 바인딩 event 주의, 컴포넌트 구분, routerLink (0) | 2023.04.21 |
[230420] 데이터 추상화, Angular 라이프사이클 (0) | 2023.04.20 |
[230417] Angular Service, Component (0) | 2023.04.18 |
2021.02.02 (0) | 2022.02.03 |