Cin.ignore() फ़ंक्शन का उपयोग किया जाता है जिसका उपयोग इनपुट बफर से एक या अधिक वर्णों को अनदेखा या साफ़ करने के लिए किया जाता है।
इग्नोर () काम कर रहा है, इसके बारे में विचार प्राप्त करने के लिए, हमें एक समस्या को देखना होगा, और इसका समाधान इग्नोर () फ़ंक्शन का उपयोग करके पाया जाता है। समस्या नीचे की तरह है।
कभी-कभी हमें अवांछित बफर को साफ़ करने की आवश्यकता होती है, इसलिए जब अगला इनपुट लिया जाता है, तो यह वांछित कंटेनर में संग्रहीत होता है, लेकिन पिछले चर के बफर में नहीं। उदाहरण के लिए, सिने स्टेटमेंट में प्रवेश करने के बाद, हमें एक कैरेक्टर ऐरे या स्ट्रिंग को इनपुट करना होगा। तो हमें इनपुट बफर को साफ़ करने की आवश्यकता है, अन्यथा यह पिछले चर के बफर पर कब्जा कर लेगा। पहले इनपुट के बाद "एंटर" कुंजी दबाकर, क्योंकि पिछले चर के बफर में नया डेटा रखने के लिए जगह है, प्रोग्राम कंटेनर के निम्नलिखित इनपुट को छोड़ देता है।
उदाहरण
#include<iostream>
#include<vector>
using namespace std;
main() {
int x;
char str[80];
cout << "Enter a number and a string:\n";
cin >> x;
cin.getline(str,80); //take a string
cout << "You have entered:\n";
cout << x << endl;
cout << str << endl;
} आउटपुट
Enter a number and a string: 8 You have entered: 8
पूर्णांक और स्ट्रिंग के लिए दो cin कथन हैं, लेकिन केवल संख्या ली जाती है। जब हम एंटर कुंजी दबाते हैं, तो यह बिना किसी इनपुट के गेटलाइन () फ़ंक्शन को छोड़ देता है। कभी-कभी यह इनपुट ले सकता है लेकिन पूर्णांक चर के बफर के अंदर, इसलिए हम स्ट्रिंग को आउटपुट के रूप में नहीं देख सकते हैं।
अब इस समस्या को हल करने के लिए, हम cin.ignore() फ़ंक्शन का उपयोग करेंगे। इस फ़ंक्शन का उपयोग दी गई सीमा तक इनपुट को अनदेखा करने के लिए किया जाता है। यदि हम कथन इस प्रकार लिखते हैं -
cin.ignore(numeric_limits::max(), ‘\n’)
फिर यह नए लाइन कैरेक्टर सहित इनपुट को भी नजरअंदाज कर देता है।
उदाहरण
#include<iostream>
#include<ios> //used to get stream size
#include<limits> //used to get numeric limits
using namespace std;
main() {
int x;
char str[80];
cout << "Enter a number and a string:\n";
cin >> x;
cin.ignore(numeric_limits<streamsize>::max(), '\n'); //clear buffer before taking new
line
cin.getline(str,80); //take a string
cout << "You have entered:\n";
cout << x << endl;
cout << str << endl;
} आउटपुट
Enter a number and a string: 4 Hello World You have entered: 4 Hello World