file - how while loop is incremented in feof( ) to read in C -


मेरे पास निम्न कोड है।

  जबकि (! Feof (fp1) & amp; amp; ;; Feof (fp2) {fscanf (fp1, "% s", नाम); fscanf (fp2, "% s", usn); fprintf (fp3, "% s% s \ n", नाम, usn);}  

इसमें मैं समझता हूं कि एफओएफ फ्लैग सेट होगा जब ईओएफ पढ़ा जाता है। लेकिन फ़ाइल में किसी और के बाद स्ट्रिंग कैसे पढ़ती है? मैंने लूप में ऐसा कोई कोड शामिल नहीं किया है। यह दोनों फाइलों में अंत तक सभी तार पढ़ता है और एफपीओ को लिखता है। कृपया

जांचें पिछले IO ऑपरेशन।

  जबकि ((fscanf (fp1, "% s", नाम)! = EOF) & amp; amp; (fscanf (fp2, "% s", usn)! = EOF)) {fprintf (एफपीई, "% s% s \ n", नाम, usn);}  

विस्तार से:

"फफफ फ्लैग सेट होगा जब EOF पढ़ा जाता है "गलत-अग्रणी है। EOF नहीं है कुछ पढ़ा है यह ऐसी स्थिति है जो तब होती है जब इनपुट का प्रयास होता है, लेकिन विफल रहता है क्योंकि कोई अधिक डेटा संभव नहीं है सी में, कोड यह नहीं जानता है कि अगले char इनपुट को पढ़ने से पहले उपलब्ध है या नहीं। fscanf (fp1, "% s", नाम)

कोड की वापसी की जांच नहीं करता है

कोड को पढ़ने और असफल होने की कोशिश करने की आवश्यकता है। fscanf () का मान यह खतरनाक है क्योंकि कोड को आश्वस्त नहीं किया जाता है कि कुछ भी नाम में पढ़ा गया था। निश्चय है कि scanf () सफल मान (या नहीं) रिटर्न मान की जांच करके प्राप्त होता है।

"फ़ाइल में किसी और के बाद स्ट्रिंग कैसे पढ़ती है? ..." केवल पोस्ट कोड के रूप में अनुमान लगाया जा दोषपूर्ण है। जबकि (! Feof (fp1) & amp;! Feof (fp2) < है कम से कम एक गुम है) । जैसा कि सच कोड ओ.पी. है तो अनुमान-काम है

जबकि मान (, कोड loops बार बार प्रत्येक से गैर-सफेद-स्पेस वर्णों की एक स्ट्रिंग पढ़ने फ़ाइल। यह एक बार बहुत बार के रूप में पिछली बार इसे पढ़ता है, fp1 और / या fp2 के रूप में जारी रहता है और इसलिए उनकी अंतिम अवस्था में printf () में शायद पहले से पढ़ा गया नाम और / या usn की दोहराता है।

ओपी ने घोषणा नहीं की है नाम, USN । काफी संभव है, इनमें से कोई भी डेटा पढ़े जाने के लिए अपर्याप्त है और बफ़र्स पर अधिक प्रवाह होता है जिसके परिणामस्वरूप अपरिभाषित व्यवहार होता है। @ash


Comments

Popular posts from this blog

mysql - How to enter php data into a html multiple select box -

java - Can't add JTree to JPanel of a JInternalFrame -

c++ - Cassandra datastax cpp driver - avoiding unnecessary copies -