"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Turbo C++\'s \"cin\" केवल पहला शब्द ही क्यों पढ़ता है?

Turbo C++\'s \"cin\" केवल पहला शब्द ही क्यों पढ़ता है?

2024-11-05 को प्रकाशित
ब्राउज़ करें:249

Why Does Turbo C  \'s \

टर्बो सी की "सिन" सीमा: केवल पहला शब्द पढ़ना

टर्बो सी में, "सिन" इनपुट ऑपरेटर के पास एक है वर्ण सरणियों के साथ व्यवहार करते समय सीमाएँ। विशेष रूप से, यह केवल तब तक पढ़ता है जब तक कि यह एक व्हाइटस्पेस वर्ण (उदाहरण के लिए, स्पेस या न्यूलाइन) का सामना नहीं करता है। बहु-शब्द इनपुट को पढ़ने का प्रयास करते समय यह अप्रत्याशित व्यवहार का कारण बन सकता है।

निम्नलिखित टर्बो सी कोड पर विचार करें:

#include 

class String {
  char str[100];

public:
  void input() {
    cout > str;
  }
  void display() {
    cout 

यदि आप यह कोड चलाते हैं और इनपुट "स्टीव हॉकिंग" दर्ज करते हैं, तो आप उम्मीद करेंगे कि आउटपुट पूरी स्ट्रिंग प्रदर्शित करेगा। हालाँकि, "सिन" सीमा के कारण, केवल "स्टीव" प्रदर्शित होता है, क्योंकि "सिन" पहले व्हाइटस्पेस वर्ण (स्पेस) पर पढ़ना बंद कर देता है।

सीमा पर काबू पाना

इस सीमा को संबोधित करने के लिए, आप टर्बो सी में वर्ण सरणी पढ़ने के लिए वैकल्पिक तरीकों का उपयोग कर सकते हैं:

  1. cin.getline(str, sizeof str);
    यह विधि व्हाइटस्पेस वर्णों सहित इनपुट की एक पूरी पंक्ति को निर्दिष्ट चार सरणी में पढ़ती है।
  2. std::getline(cin, str);
    यदि आपके पास मानक तक पहुंच है लाइब्रेरी, आप एक पूरी लाइन को एक स्ट्रिंग ऑब्जेक्ट में पढ़ने के लिए इस विधि का उपयोग कर सकते हैं, जो अधिक लचीलापन प्रदान करता है।
  3. अपनी खुद की स्ट्रिंग क्लास लागू करें:
    आप अपनी खुद की स्ट्रिंग क्लास को परिभाषित कर सकते हैं जो इनपुट और आउटपुट को अधिक कुशलता से संभालता है।

सिफारिश

आजकल अनुशंसित दृष्टिकोण आधुनिक सी कंपाइलर और मानक लाइब्रेरी का उपयोग करना है। यह अधिक विश्वसनीय और कुशल इनपुट हैंडलिंग प्रदान करता है, जिसमें इनपुट की संपूर्ण पंक्तियों को पढ़ने की क्षमता भी शामिल है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3