getline이 입력을 요청하지 않음: 버퍼 문제 사례
C에서 getline(cin, mystr)을 사용할 때 다음과 같은 문제가 발생할 수 있습니다. 사용자 입력을 요구하지 않고 대신 가격 변수에 초기 값 "0"을 할당하는 문제가 있습니다. 이는 getline이 줄 바꿈 문자('n')를 만날 때까지 입력을 읽고 입력 버퍼에 줄 바꿈 문자가 남아 있을 수 있기 때문입니다.
>>와 같은 입력 스트림 연산자를 혼합할 때 문제가 발생합니다. getline으로. cin >> i 정수를 읽으려면 사용자의 입력 뒤에 개행 문자가 옵니다. 그러나 이 개행 문자는 입력 버퍼에 남아 있습니다. 이후에 getline을 호출하면 사용자에게 메시지를 표시하지 않고 개행 문자를 입력으로 해석합니다.
가능한 해결 방법:
cin.ignore(); getline(cin, mystr);
int getInt() { string input; getline(cin, input); return stoi(input); }
권장 방법:
모든 입력에 getline을 사용하여 개행 문자가 적절하게 처리되고 입력하라는 메시지가 항상 표시됩니다. 혼합하지 마세요 >> 이러한 버퍼 문제를 방지하려면 getline을 사용하세요.
위 내용은 C에서 `getline`이 입력 프롬프트를 표시하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!