• cin.ignore() - cin, getline 동시에 사용할 때
    C++ 2021. 7. 6. 03:20

     

    위에서 cin으로 정수 등 입력 받고 나서 getline으로 한 줄 string 입력 받을 때

    바로 개행문자가 들어가버려서 입력 불가한 경우 cin.ignore() 사용해서 버퍼 비워주기

     

    #include<iostream>
    #include<string>
    using namespace std;
    int main() {
    	int n;
    	cin >> n; // 정수형 변수 n에는 입력한 숫자만 저장되고, \n은 버퍼에 그대로 남음
    
    	string s;
    	getline(cin, s); // 새로 입력하기도 전에 위에서 입력하고 남은 \n이 들어와버림
    
    	cin >> n;
    
    	// cin.ignore()를 통해 입력 버퍼를 비우면 해결 가능
    	cin.ignore();
    	getline(cin, s);
    }

     

    'C++' 카테고리의 다른 글

    map  (0) 2021.07.11
    입출력 조작자 (Manipulator)  (0) 2021.07.11
    stoi() - string to int  (0) 2021.07.06
    pair, vector  (0) 2021.07.06
    stack  (0) 2021.06.01

    댓글

ABOUT ME

공부한 것을 기록하기 위해 블로그를 개설했습니다. 관심 분야는 ROS와 머신러닝입니다.

VISIT

/