>백엔드 개발 >C++ >`>>`를 사용한 후 `getline`에 입력 메시지가 표시되지 않는 이유는 무엇이며 어떻게 해결할 수 있습니까?

`>>`를 사용한 후 `getline`에 입력 메시지가 표시되지 않는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-27 10:07:08975검색

Why is `getline` not prompting for input after using `>>`, 어떻게 고칠 수 있나요?
>`, 어떻게 고칠 수 있나요? " />

getline으로 입력 문제 해결

이 코드는 다른 입력에 대해 연산자>>를 사용한 후 getline 함수를 사용하여 입력을 읽습니다. 그러나 getline은 사용자에게 입력 메시지를 표시하지 않고 대신 가격 변수에 초기 값 0을 사용합니다.

이 동작의 이유 연산자>>는 공백으로 구분됩니다. 즉, 연산자>>를 사용하여 정수를 읽을 때 입력을 중지합니다. 사용자는 입력 버퍼에 개행 문자를 남겨두고 Enter 키를 눌러 입력을 제출할 수 있습니다.

나중에 getline이 호출되면 즉시 개행 문자를 찾습니다. 이 문제를 해결하려면 다음 두 가지 접근 방식이 있습니다.

1. a 더미 getline 호출

getline을 호출하기 전에ignore() 함수를 사용하여 입력 버퍼에서 개행 문자를 지웁니다. 또는 getline()에 대한 더미 호출을 수행하여 줄 바꿈을 제거할 수 있습니다.

2. 독점적으로 getline 사용

연산자>>를 사용하는 대신 모든 입력에 대해 getline을 사용하고 정수의 경우 stoi(), 부동 소수점의 경우 stod()와 같은 함수를 사용하여 획득한 문자열을 원하는 데이터 유형으로 변환합니다. . 이러한 접근 방식은 데이터 안전성과 견고성을 보장합니다.

위 내용은 `>>`를 사용한 후 `getline`에 입력 메시지가 표시되지 않는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.