success   3년 전

문제를 풀어가는 중 제가 작성한 코드를 컴파일 하고 테스트 케이스를 진행하려고 할때 이상한 점을 발견하였습니다.

getline(cin,str) 부분에서 테스트 케이스 변수 t에 1을 입력할 때에 getline부분이 실행되지 않는것 같습니다.

혹시 왜 그런지 아시는 분께서는 답변 부탁드립니다.

seico75   3년 전

cin >> t 를 실행하고 나면 1를 가져가고 뒤에 \n를 남겨둡니다.

그 이후에 getline 이 실행되면 다음줄을 읽는 것이 아니라 남겨두었던 1 옆의 \n까지를 읽습니다.

djm03178   3년 전

첫 줄에서 t를 입력한 뒤 개행 문자가 그대로 버퍼에 남아있기 때문에, 처음 실행되는 getline은 그 개행 문자 하나를 읽고 바로 한 줄이 끝난 것으로 인식합니다.

댓글을 작성하려면 로그인해야 합니다.