알고리즘
[C++] 입출력 (cin vs getline)
ok4u
2021. 7. 19. 06:37
cin은
- 표준 입력 버퍼에서 개행 문자를 제외한 값을 가져온다.
- 공백이나 개행 입력 시 공백 이전까지의 값만 결과로 받아들인다.
- 개행 문자를 입력 버퍼에 남겨둔다.
문자열을 입력 받을 수 있다.
하지만!
아래와 같은 상황을 보자. 위 코드대로 실행을 하면 n을 입력 받은 후 문자열을 입력받지 않고 바로 다음 코드로 넘어가게 된다. 이유는 버퍼에 정수 값을 입력한 뒤 누른 엔터(‘\n’)가 그대로 남아있어
getline()에 들어가기 때문이다. 이를 해결하기 위해 cin.ignore() 라는 함수를 사용할 수 있다.
위와 같이 변경하면 cin.ingore()가 입력 버퍼의 모든 내용을 제거해주어 getline()이 정상적으로 동작할 수 있다.
추가적으로 cin.ignore() 함수에 대해 알아보자면
cin.ignore(int n, char dlim);
cin.ignore(읽어들일 문자의 개수, 종결 문자);
와 같은 형태로도 사용이 가능하다.
출처 :
kwon | kwon's Blog
Express - 미들웨어 Express MiddleWare미들웨어는 express의 핵심이다. 요청과 응답의 중간에 위치하여 미들웨어라고 하며, 라우터와 에러 핸들로 또한 미들웨어의 일종이므로 미들웨어가 express의 전부
kyu9341.github.io