C++ में getch फ़ंक्शन

C Mem Getch Fanksana



C और C++ प्रोग्रामिंग भाषाओं के क्षेत्र में, विभिन्न प्राकृतिक तरीकों और पुस्तकालयों का उपयोग किया जाता है। इस लेख में, हम C++ की getch() विधि की बारीकी से जांच करेंगे। Getch() फ़ंक्शन का उपयोग तब किया जाता है जब हम अपने कीबोर्ड से वर्णों की एक स्ट्रिंग को पढ़ना चाहते हैं, और यह स्क्रीन पर आउटपुट प्रोजेक्ट नहीं करता है। यहां, हम आपकी जागरूकता के लिए मान्य उदाहरणों और प्रमाणों की सहायता से इस getch() फ़ंक्शन का ठीक से पता लगाएंगे। यह विधि उपयोगकर्ता से इनपुट लेने के लिए C++ में कंसोल-आधारित (आउटपुट) परिदृश्यों में अधिकतर प्रयोग योग्य है।

C++ में Getch() क्या है?

C++ में, 'cstdio' हेडर फ़ाइल नामक लाइब्रेरी का उपयोग ज्यादातर getch() फ़ंक्शन के लिए किया जाता है। Getch() को 'conio' में भी परिभाषित किया गया है। h' हेडर फ़ाइल है जो कंपाइलर-विशिष्ट है और यह एक गैर-मानक फ़ंक्शन है क्योंकि यह पूरी तरह से C++ लाइब्रेरी मानक का हिस्सा नहीं है। Getch का संक्षिप्त नाम 'गेट कैरेक्टर' है और इसका उपयोग आउटपुट स्क्रीन पर कुछ समय तक रहने के लिए किया जाता है जब तक कि उपयोगकर्ता इनपुट पास नहीं कर लेता।

आइए उदाहरणों की सहायता से इस अवधारणा को ठीक से समझाएं। यहां, हम उचित परिदृश्यों की सहायता से C++ में getch() विधि के सिंटैक्स, उपयोग और व्यवहार के बारे में सीखेंगे।







परिदृश्य 1: मेनू-संचालित एप्लिकेशन में Getch() का उपयोग कैसे करें

आइए मेनू-संचालित छोटे एप्लिकेशन के बारे में चर्चा करें जिसके लिए हम विभिन्न विकल्पों को सूचीबद्ध करेंगे। प्रत्येक विकल्प को रेस्तरां मेनू की तरह अलग-अलग उद्देश्यों के लिए डिज़ाइन किया गया है। इस उदाहरण का कोड स्निपेट निम्नलिखित में संलग्न है:



#शामिल
#शामिल
#शामिल करें
का उपयोग करते हुए नाम स्थान कक्षा ;
int यहाँ मुख्य ( ) {
चार पसंद ;
कक्षा :: अदालत << 'रेस्तरां मेनू: \एन ' ;
कक्षा :: अदालत << '1. विकल्प 1: पिज़्ज़ा \एन ' ;
कक्षा :: अदालत << '2. विकल्प 2: बर्गर \एन ' ;
कक्षा :: अदालत << '3. विकल्प 3: केक \एन ' ;
कक्षा :: अदालत << 'अपनी पसंद दर्ज करें:' ;
पसंद = getch ( ) ; // उपयोगकर्ता इनपुट देता है और getch() एंटर बटन दबाए बिना इनपुट पढ़ता है
बदलना ( पसंद ) {
मामला '1' :
कक्षा :: अदालत << ' \एन आप 'पिज्जा' चुनें \एन ' ;
तोड़ना ;
मामला '2' :
कक्षा :: अदालत << ' \एन आप 'बर्गर' चुनें \एन ' ;
तोड़ना ;
मामला '3' :
कक्षा :: अदालत << ' \एन आप 'केक' चुनें \एन ' ;
तोड़ना ;
गलती करना :
कक्षा :: अदालत << '\कोई विकल्प नहीं - कोई आदेश नहीं \एन ' ;
}
वापस करना 0 ;
}

सबसे पहले, हम प्रोग्राम की शुरुआत में आवश्यक मानक पुस्तकालयों की घोषणा करते हैं। हम मुख्य फ़ंक्शन के अंदर एक तर्क बनाते हैं, और प्रोग्राम के मुख्य फ़ंक्शन के अंदर कुछ भी निष्पादन योग्य होगा। यहां, हम एक 'पसंद' वेरिएबल घोषित करते हैं जिसका डेटा प्रकार एक वर्ण है। फिर, हम एक मेनू बनाते हैं जो कंसोल स्क्रीन पर दिखाई देता है। हम उपयोगकर्ता को 'पिज्जा', 'बर्गर', 'केक' और 'कोई विकल्प नहीं' जैसे विभिन्न विकल्पों के साथ एक 'रेस्तरां मेनू' देते हैं।



हम वेरिएबल विकल्प में getch() पास करते हैं क्योंकि उपयोगकर्ता इनपुट इस वेरिएबल में संग्रहीत होता है और चयनित विकल्प के अनुसार स्वचालित रूप से आउटपुट प्रदर्शित करता है। मेनू से एक विकल्प चुनने के लिए, हम स्विच() फ़ंक्शन का उपयोग करते हैं और इस फ़ंक्शन में 'विकल्प' पास करते हैं। 'स्विच' विधि के अंदर, हम प्रत्येक विकल्प के विरुद्ध व्यक्तिगत रूप से केस बनाते हैं। C++ में 'स्विच' विधि में, प्रत्येक केस के अंत में हमेशा एक ब्रेक स्टेटमेंट का उपयोग किया जाता है जो स्टेटमेंट के अंत को इंगित करता है। जब हम इसे संकलित और निष्पादित करते हैं, तो आउटपुट कंसोल स्क्रीन पर दिखाया जाता है जो निम्नलिखित में संलग्न है:





अब, getch() फ़ंक्शन यहां काम करेगा। जब उपयोगकर्ता विकल्प में प्रवेश करता है, तो getch() फ़ंक्शन इस इनपुट की तुलना स्विच केस से करेगा और स्वचालित रूप से और तुरंत कंसोल पर आउटपुट या विकल्प दिखाएगा।



पहले संलग्न स्क्रीनशॉट में, उपयोगकर्ता विकल्प '2' दर्ज करता है और आउटपुट स्क्रीन पर 'आप 'बर्गर' चुनें' के रूप में दिखाई देता है। इस उदाहरण में getch() की कार्यप्रणाली साफ़ हो जाती है क्योंकि उपयोगकर्ता इनपुट में प्रवेश करता है और कंसोल पर दिखाए गए उपयोगकर्ता द्वारा दिए गए इनपुट के बजाय अपेक्षित आउटपुट कंसोल स्क्रीन पर प्रदर्शित होता है।

परिदृश्य 2: Getch() का उपयोग करके उपयोगकर्ता से छिपा हुआ पासवर्ड स्वीकार करें

इस परिदृश्य में, हम इस अवधारणा से गुजरेंगे कि उपयोगकर्ता गुप्त रूप से पासवर्ड कैसे इनपुट कर सकता है और कंसोल स्क्रीन पर इनपुट पासवर्ड दिखा सकता है। यहां, हम स्क्रीन को तब तक होल्ड करने के लिए getch() फ़ंक्शन का उपयोग करते हैं जब तक उपयोगकर्ता इनपुट पास नहीं कर देता। याद रखें कि getch() उपयोगकर्ता इनपुट प्रदर्शित नहीं करता है क्योंकि कर्सर कंसोल स्क्रीन पर इनपुट प्रदर्शित नहीं करता है। इस परिदृश्य का कोड स्निपेट इस प्रकार उल्लिखित है:

#शामिल
#शामिल
#शामिल
#शामिल
#शामिल
int यहाँ मुख्य ( )
{
चार पासव [ 8 ] ;
int यहाँ एम ;
कक्षा :: अदालत << '8 अंकों का पासवर्ड दर्ज करें:' ;
के लिए ( एम = 0 ; एम <= 7 ; एम ++ ) {
पासव [ एम ] = getch ( ) ;
कक्षा :: अदालत << '*' ;
}
पासव [ एम ] = ' \0 ' ;
कक्षा :: अदालत << ' \एन ' ;
कक्षा :: अदालत << 'दर्ज किया गया पासवर्ड खोलें:' ;
के लिए ( एम = 0 ; पासव [ एम ] ! = ' \0 ' ; एम ++ )
कक्षा :: अदालत << ( '%सी' , पासव [ एम ] ) ;
getch ( ) ;
वापस करना 0 ;
}

जैसा कि दिए गए कोड में देखा गया है, मानक लाइब्रेरी जोड़ें जो getch() फ़ंक्शन के उपयोग और स्क्रीन पर आउटपुट प्रदर्शित करने के लिए आवश्यक हैं। इस प्रोग्राम का मुख्य कार्य विभिन्न चरणों को शामिल करना है जिसके माध्यम से हम उपयोगकर्ता से पासवर्ड इनपुट करते हैं और स्क्रीन पर पासवर्ड दिखाते हैं। हमें ऐरे वेरिएबल की आवश्यकता है जिसका डेटा प्रकार 'चार' है जिसमें 8 तत्वों का आकार है। इसके अलावा, हमें एक वेरिएबल की भी आवश्यकता है जो पुनरावृत्ति मानों को संग्रहीत करता है।

यहां, हम एक 'फॉर लूप' का उपयोग करते हैं जो उपयोगकर्ता की प्रत्येक इनपुट गिनती को पढ़ता है यदि सरणी का आकार '8' है। फिर, उपयोगकर्ता केवल लूप की सहायता से इनपुट कंसोल विंडो पर कुंजी पासवर्ड दबाता है। इस 'for' लूप के अंदर, हम getch() फ़ंक्शन को passw[] ऐरे में पास करते हैं। यह फ़ंक्शन तब तक स्क्रीन पर बना रहता है जब तक उपयोगकर्ता पासवर्ड के 8 अक्षर इनपुट नहीं कर देता। प्रत्येक लूप गिनती पर, प्रत्येक उपयोगकर्ता इनपुट गिनती पर '*' प्रिंट करें, और लूप यहां बंद है।

उसके बाद, हम फिर से 'फॉर' लूप का उपयोग करते हैं जो केवल पासव [] से मान लेकर छिपे हुए पासवर्ड को दिखाता है। जब तक उपयोगकर्ता इनपुट पूरी तरह से सरणी में संग्रहीत नहीं हो जाता है तब तक गेटच स्क्रीन को स्वचालित रूप से रखता है और स्क्रीन पर पासवर्ड प्रदर्शित करता है।

प्रोग्राम को निष्पादित करने और स्क्रीन पर आउटपुट दिखाने के लिए 'कंपाइल एंड रन' विकल्प पर क्लिक करें।

स्क्रीन पर 8 अंकों का पासवर्ड डालें। जब 8 अंकों का इनपुट हो जाता है, तो यह स्वचालित रूप से कंसोल विंडो पर टाइप किया गया पासवर्ड प्रदर्शित करता है। कीबोर्ड की कुंजियों को 8 बार दबाएं और पासवर्ड टाइप करें।

आउटपुट स्क्रीन सिर्फ getch() फ़ंक्शन के कारण रुक जाती है। Getch() फ़ंक्शन केवल स्क्रीन पर इनपुट डेटा प्रिंट करता है जैसा कि पहले संलग्न स्क्रीनशॉट में दिखाया गया है।

निष्कर्ष

निष्कर्ष निकालने के लिए, getch() C और C++ प्रोग्रामिंग का सबसे महत्वपूर्ण फ़ंक्शन है जो उपयोगकर्ता को स्क्रीन पर इनपुट दिखाए बिना या कर्सर के बिना कीबोर्ड से इनपुट को फ्रीज करने की सुविधा देता है। इसकी गैर-मानक लाइब्रेरी के कारण, यदि हम प्रोग्राम में getch() का उपयोग नहीं करते हैं, तो कंसोल विंडो तब तक प्रदर्शित होती है जब तक कि प्रोग्राम निष्पादन के लिए आवश्यक समय मिलीसेकंड में न हो। इस लेख में, हमने इस विधि को उचित कोड उदाहरणों के साथ समझाया।