मान लीजिए कि आप सी का उपयोग करके एक वर्ण, फिर एक स्ट्रिंग और एक वाक्य (रिक्त स्थान के साथ स्ट्रिंग) लेना चाहते हैं। तो हम तीन इनपुट प्रदान करेंगे और आउटपुट के समान प्रिंट करेंगे। स्ट्रिंग का अधिकतम आकार यहां 500 है।
तो, अगर इनपुट पसंद है
character = 'T' string = "ProgrammingLanguage" sentence = "I love programming through C",
तो आउटपुट होगा
Your character: T Your string: ProgrammingLanguage Your sentence: I love programming through C
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
चरित्र के लिए हमें scanf("%c", &character);
. का उपयोग करने की आवश्यकता है -
स्ट्रिंग के लिए हमें scanf("%s", string);
. का उपयोग करने की आवश्यकता है -
यह चरण वैकल्पिक है, लेकिन कुछ मामलों में आवश्यक है। कभी-कभी आपको एक समस्या का सामना करना पड़ सकता है। आपका प्रोग्राम कभी-कभी अगले इनपुट की प्रतीक्षा नहीं करता है, इसलिए हमें fflush(stdin)
का उपयोग करके बफर को साफ़ करने की आवश्यकता है -
और रिक्त स्थान के साथ स्ट्रिंग के लिए हमें fgets() फ़ंक्शन का उपयोग करने की आवश्यकता है। यहां पहला पैरामीटर स्ट्रिंग है, दूसरा आकार है और आखिरी वाला है stdin कंसोल से इनपुट लेने के लिए।
-
अंतिम इंगित करता है कि हमें स्ट्रिंग के अंत को दर्शाने के लिए एक नए लाइन वर्ण की आवश्यकता है। अन्यथा यह स्थान भी लेगा।
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <stdio.h> int main(){ char character; char string[500]; char sentence[500]; scanf("%c", &character); scanf("%s", string); fflush(stdin); fgets(sentence, 500, stdin); printf("Your character: %c\n", character); printf("Your string: %s\n", string); printf("Your sentence: %s\n", sentence); }
इनपुट
T ProgrammingLanguage I love programming through C
आउटपुट
Your character: T Your string: ProgrammingLanguage Your sentence: I love programming through C