728x90
728x90
cin.ignore()
- cin.ignore() 함수는 입력 버퍼를 자동으로 비우도록 설정하기 위해 사용된다.
- C 언어의 fflush(stdin) 함수와 비슷한 역할을 수행한다.
사용 예
#include <iostream>
#include <string>
using namespace std;
int main() {
int val;
string str;
cin >> val;
getline(cin, str);
cout << val << str << endl;
}
1
1
- 위의 예시 코드를 실행해 보면 예상과 달리 입력받은 정수만 출력되고 프로그램이 종료된다. 이런 현상이 발생하는 이유는 표준 입력 버퍼에 개행문자(\n)가 남아 있기 때문이다.
- getline() 코드 앞에 cin.ignore() 함수로 버퍼를 비워(Clear)주면 이 문제가 해결된다.
#include <iostream>
#include <string>
using namespace std;
int main() {
int val;
string str;
cin >> val;
cin.ignore(); // Clear Buffer
getline(cin, str);
cout << val << str << endl;
}
1
astra
1astra
- cin.clear() 함수 또한 사용할 수 있지만, 이 함수는 입력 버퍼를 비우는 것이 아닌 stream을 good state로 돌려주는 함수이다. 따라서 버퍼를 명확하게 비우기 위해 cin.ignore() 함수를 사용하는 것이 권장된다.
728x90
728x90
'Programming > C++' 카테고리의 다른 글
[C++] unordered_map (0) | 2022.11.08 |
---|---|
[C++] map(맵) (0) | 2022.11.08 |
[C++] pair(페어)와 tuple(튜플) (0) | 2022.11.03 |
[C++] lower_bound(), upper_bound() ; 이진 탐색(Binary Search) (0) | 2022.11.01 |
[C++] sort 함수를 이용하여 오름차순/내림차순 정렬하는 방법 (0) | 2022.10.27 |
[C/C++] 현재 날짜/시간 원하는 형태로 출력하기 (0) | 2022.10.20 |
[C++] bits/stdc++.h (1) | 2022.10.18 |
[C++] 동적 할당(Dynamic Allocation) 방법 (0) | 2022.08.24 |