본문 바로가기

알고리즘

[C++] 입출력 (cin vs getline)

cin은 

  • 표준 입력 버퍼에서 개행 문자를 제외한 값을 가져온다.
  • 공백이나 개행 입력 시 공백 이전까지의 값만 결과로 받아들인다.
  • 개행 문자를 입력 버퍼에 남겨둔다.

 

문자열을 입력 받을 수 있다.

 

 

 

하지만!

아래와 같은 상황을 보자. 위 코드대로 실행을 하면 n을 입력 받은 후 문자열을 입력받지 않고 바로 다음 코드로 넘어가게 된다. 이유는 버퍼에 정수 값을 입력한 뒤 누른 엔터(‘\n’)가 그대로 남아있어

getline()에 들어가기 때문이다. 이를 해결하기 위해 cin.ignore() 라는 함수를 사용할 수 있다.

 

 

 

 

위와 같이 변경하면 cin.ingore()가 입력 버퍼의 모든 내용을 제거해주어 getline()이 정상적으로 동작할 수 있다.

추가적으로 cin.ignore() 함수에 대해 알아보자면
cin.ignore(int n, char dlim);
cin.ignore(읽어들일 문자의 개수, 종결 문자);
와 같은 형태로도 사용이 가능하다.

 

 

 

 

출처 : 

https://kyu9341.github.io/

 

kwon | kwon's Blog

Express - 미들웨어 Express MiddleWare미들웨어는 express의 핵심이다. 요청과 응답의 중간에 위치하여 미들웨어라고 하며, 라우터와 에러 핸들로 또한 미들웨어의 일종이므로 미들웨어가 express의 전부

kyu9341.github.io