>백엔드 개발 >C++ >`>>` 연산자를 사용한 후 `getline`에서 입력 메시지를 표시하지 않는 이유는 무엇입니까?

`>>` 연산자를 사용한 후 `getline`에서 입력 메시지를 표시하지 않는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-30 11:26:11654검색

Why Doesn't `getline` Prompt for Input After Using the `>>` 운영자?
>` 운영자? " />

getline이 입력을 요청하지 않음

이 코드 조각에서는 >> 연산자를 사용한 후 getline을 사용할 때 문제가 발생합니다. >>인 경우 ; 는 입력을 읽는 데 사용되며 사용자 입력 뒤에는 입력 버퍼에 남아 있는 개행 문자가 나옵니다. 이 동작은 getline이 즉시 호출될 때 문제가 됩니다. 이후에는 입력 줄을 읽을 것으로 예상했지만 개행 문자를 찾아 사용자에게 메시지를 표시하지 않고 종료합니다.

해결책:

이 문제를 해결하려면 다음이 필요합니다. 두 가지 실행 가능한 솔루션:

  1. 무시를 사용하여 새 줄:
    getline을 사용하기 전에 입력 버퍼에서 줄 바꿈 문자를 사용하려면 무시를 호출하세요.

    cin.ignore();
    getline(cin, mystr);
  2. getline만 사용:
    >>와 getline을 혼합하는 대신 getline을 독점적으로 사용하여 모든 입력을 읽습니다. 코드를 작성하고 개행 문자와 관련된 잠재적인 문제를 제거합니다.

    getline(cin, name);
    getline(cin, i);
    getline(cin, mystr);

위 내용은 `>>` 연산자를 사용한 후 `getline`에서 입력 메시지를 표시하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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