C에서 cin.ignore()의 수수께끼 풀기
C 프로그램에서 사용자와 상호작용할 때 문자열 입력 건너뛰기와 같은 예상치 못한 시나리오가 발생할 수 있습니다. 생기다. 겉으로는 무해해 보이는 cin.ignore() 호출이 이러한 난처한 문제를 해결하는 열쇠를 쥐고 있습니다.
cin.ignore()가 중요한 이유
사용자가 숫자를 입력할 때 문자열이 뒤에 오는 경우 Enter 키를 누르면 입력 버퍼에 개행 문자('n')가 삽입됩니다. 이어서 cin>> 숫자; 숫자를 소비하지만 'n' 문자는 버퍼에 남겨둡니다. cin.ignore()가 없으면 cin >> getline(cin, mystr); 실수로 문자열 입력 대신 'n' 문자를 읽습니다.
cin.ignore() 함수는 지정된 수의 문자(예제에서는 256)를 무시하거나 구분 기호(' n'인 경우).
필요성 예측 cin.ignore()
cin.ignore()가 필요할 때를 예측하려면 입력 버퍼에 남은 문자가 있을 가능성을 이해해야 합니다. 필수가 되는 상황은 다음과 같습니다.
예: 코드 탐구
제공된 C 프로그램을 고려하세요.
#include <iostream> #include <string> using namespace std; int main() { double num; string mystr; cout << "Please enter a number: " << endl; cin >> num; cout << "Your number is: " << num << endl; cin.ignore(256, '\n'); // Ignore any remaining characters cout << "Please enter your name: \n"; getline (cin, mystr); cout << "So your name is " << mystr << "? \n"; cout << "Have a nice day. \n"; }
cin.ignore( ) cin >> 이후에 호출합니다. 숫자; 'n' 문자가 무시되어 후속 cin >> getline(cin, mystr); 문자열 입력을 올바르게 읽으려면
위 내용은 C에서 숫자 입력 후 올바른 문자열 입력을 위해 `cin.ignore()`가 중요한 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!