c - fgets() skipped -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 1 उत्तर

    मैं एक प्रोग्राम लिख रहा हूँ स्कूल जहां उपयोगकर्ता इनपुट का नाम, घंटे काम करता है, और प्रति घंटा मजदूरी।

      int main () {char name [SIZE]; Char चयन = 'जेड'; इंट घंटे वर्धित = 0, काउंटर = 0, फ्लैग = 1; फ्लोट प्रति घंटा राइट = 0.0; Const फ्लोट otRate = 1.5; Const int week = 40; जबकि (फ्लैग == 1) {system ("cls"); Printf ("\ n \ tP एक वाई आर ओ एल एल पी आर ओ जी आर ए एम \ n"); प्रिंटफ़ ("--------------------------------------------- \ n "); Printf ("\ t (ए) - नई पेरोल जानकारी \ n \ t (बी) - प्रदर्शन पेरोल \ n \ t (सी) - छोड़ें \ n \ t"); Scanf ("% c", और चयन); चयन = टुपर (चयन); स्विच (चयन) {मामला 'ए': सिस्टम ("सीएलएस"); Printf ("कर्मचारी नाम दर्ज करें:"); Fgets (नाम, आकार, stdin); स्ट्रिप_इनलाइन (नाम, 50); Printf ("\ n प्रति घंटा की दर दर्ज करें"); स्कैन एफ ("% एफ", और प्रति घंटा की दर); Printf ("\ n इस सप्ताह काम किया घंटे:"); Scanf ("% d", और घंटे काम किया); प्रणाली ("विराम"); टूटना;   

    आकार 50 है, stdio.h & amp; Stdlib.h शामिल हैं जब मैं एक स्विच को संकलित और स्थानांतरित करता हूं तो यह fgets () इनपुट को छोड़ देता है और सीधे "प्रति घंटा की दर दर्ज करें": scanf () fgets () के सामने scanf () s डालने के लिए मैंने कोई लाभ नहीं लिया है।

    < Div class = "post-text" itemprop = "text">

    आपका scanf कॉल ने इनपुट बफर में एक नया अक्षर छोड़ा है नतीजतन, जब fgets कॉल किया जाता है, तो यह नई लाइन और रिटर्न पढ़ता है।

    उपरोक्त pmg की टिप्पणी के अनुसार, सी सामान्य प्रश्न में जवाब देखें

Comments