>`, 어떻게 고칠 수 있나요? " />
getline으로 입력 문제 해결
이 코드는 다른 입력에 대해 연산자>>를 사용한 후 getline 함수를 사용하여 입력을 읽습니다. 그러나 getline은 사용자에게 입력 메시지를 표시하지 않고 대신 가격 변수에 초기 값 0을 사용합니다.
이 동작의 이유 연산자>>는 공백으로 구분됩니다. 즉, 연산자>>를 사용하여 정수를 읽을 때 입력을 중지합니다. 사용자는 입력 버퍼에 개행 문자를 남겨두고 Enter 키를 눌러 입력을 제출할 수 있습니다.
나중에 getline이 호출되면 즉시 개행 문자를 찾습니다. 이 문제를 해결하려면 다음 두 가지 접근 방식이 있습니다.
1. a 더미 getline 호출
getline을 호출하기 전에ignore() 함수를 사용하여 입력 버퍼에서 개행 문자를 지웁니다. 또는 getline()에 대한 더미 호출을 수행하여 줄 바꿈을 제거할 수 있습니다.
2. 독점적으로 getline 사용
연산자>>를 사용하는 대신 모든 입력에 대해 getline을 사용하고 정수의 경우 stoi(), 부동 소수점의 경우 stod()와 같은 함수를 사용하여 획득한 문자열을 원하는 데이터 유형으로 변환합니다. . 이러한 접근 방식은 데이터 안전성과 견고성을 보장합니다.
위 내용은 `>>`를 사용한 후 `getline`에 입력 메시지가 표시되지 않는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!