Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C भाषा में kbhit फंक्शन


kbhit() (कीबोर्ड हिट) एक **नॉन-स्टैंडर्ड** फंक्शन है जो <conio.h> में घोषित है (मुख्यतः DOS/विंडोज कंपाइलर्स जैसे Turbo C, Borland, MSVC में)। यह जांचता है कि क्या कीबोर्ड इनपुट उपलब्ध है।

फंक्शन सिग्नेचर

int kbhit(void);
  • रिटर्न्स: नॉन-जीरो यदि की प्रेस्ड है, 0 अन्यथा।
  • ब्लॉकिंग नहीं करता (नॉन-ब्लॉकिंग)।

उदाहरण

#include <stdio.h>
#include <conio.h>  // नॉन-स्टैंडर्ड हेडर

int main() {
    char ch;
    printf("Enter keys (ESC to exit)\n");
    
    while (1) {
        if (kbhit()) {  // ध्यान: kbhit() फंक्शन कॉल है, सिर्फ kbhit नहीं
            ch = getch();  // कैरेक्टर पढ़ें (इको नहीं)
            if ((int)ch == 27)  // ESC की
                break;
            printf("You have entered: %c\n", ch);
        }
    }
    return 0;
}

आउटपुट

Enter keys (ESC to exit)
You have entered: i
You have entered: t
You have entered: D
...

महत्वपूर्ण चेतावनियां

  • पोर्टेबल नहीं: लिनक्स/यूनिक्स/मैक पर conio.h और kbhit() उपलब्ध नहीं।
  • स्टैंडर्ड नहीं: ISO C/C++ मानक का भाग नहीं।
  • विकल्प (लिनक्स/यूनिक्स): select(), poll(), या ncurses लाइब्रेरी उपयोग करें।

लिनक्स विकल्प उदाहरण

#include <stdio.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>

int kbhit_linux() {
    struct termios oldt, newt;
    int ch, oldf;
    
    tcgetattr(STDIN_FILENO, &oldt);
    newt = oldt;
    newt.c_lflag &= ~(ICANON | ECHO);
    tcsetattr(STDIN_FILENO, TCSANOW, &newt);
    oldf = fcntl(STDIN_FILENO, F_GETFL, 0);
    fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK);
    
    ch = getchar();
    
    tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
    fcntl(STDIN_FILENO, F_SETFL, oldf);
    
    if (ch != EOF) {
        ungetc(ch, stdin);
        return 1;
    }
    return 0;
}
  1. HTML बनाम XML HTML बनाम XML

    HTMLHTML का मतलब हाइपरटेक्स्ट मार्कअप लैंग्वेज है जो एक वेब पेज की संरचना का वर्णन करने के लिए उपयोग की जाने वाली भाषा है। इसमें विभिन्न HTML तत्व होते हैं जो HTML टैग और उनकी सामग्री से बने होते हैं।HTML एक हाइपरटेक्स्ट भाषा है इसलिए हम दस्तावेजों की लिंक की एक श्रृंखला बना सकते हैं। HTML का वर्तमा

  1. - C भाषा में स्ट्रिंग्स (Strings)

    स्ट्रिंग कैरेक्टर्स का एक सरणी (array) है जो नल कैरेक्टर (\0) से समाप्त होती है। नल कैरेक्टर यूजर द्वारा नहीं रखा जाता, कंपाइलर इसे स्ट्रिंग के अंत में स्वचालित रूप से रखता है।एक सरणी और एक स्ट्रिंग के बीच अंतर यह है कि कंपाइलर सरणी के अंत में नल कैरेक्टर नहीं रखता, जबकि स्ट्रिंग में कंपाइलर नल कैरे

  1. - C भाषा में एरे (Arrays)

    एरे एक ही प्रकार के तत्वों का संग्रह है जो सन्निहित मेमोरी लोकेशन पर संग्रहीत होते हैं। सबसे कम पता पहले तत्व से मेल खाता है जबकि सबसे अधिक पता अंतिम तत्व से मेल खाता है।एरे इंडेक्स शून्य (0) से शुरू होता है और एरे के आकार घटा एक (array size - 1) पर समाप्त होता है। एरे का आकार शून्य से बड़ा एक पूर्ण