मुझे पहले से ही fscanf()
का उपयोग करके एक टेक्स्ट फ़ाइल पढ़ने के लिए कुछ कोड मिल गया है, और अब मुझे इसे संशोधित करने की आवश्यकता है ताकि पहले जो व्हाइटस्पेस मुक्त हो, वे व्हाइटस्पेस को अनुमति दें।fscanf() व्हाइटस्पेस पढ़ सकते हैं?
शीर्षक: पाठ फ़ाइल के रूप में मूल रूप से है डेटा
शीर्षक: आंकड़े
आदि ...
जो है मूल रूप सेfgets(inputLine, 512, inputFile); sscanf(inputLine, "%*s %s", &data);
का उपयोग कर पार्स, डेटा क्षेत्रों पढ़ने और शीर्षक को अनदेखा कर रहा है, लेकिन अब कुछ डेटा फ़ील्ड को रिक्त स्थान की अनुमति देने की आवश्यकता है। मुझे अभी भी इसके बाद शीर्षक और व्हाइटस्पेस को तुरंत अनदेखा करने की आवश्यकता है, लेकिन फिर व्हाइटस्पेस समेत बाकी पंक्ति में पढ़ा जाए।
क्या sscanf()
फ़ंक्शन के साथ ऐसा करने के लिए वैसे भी है?
यदि नहीं, तो व्हाइटस्पेस को सही तरीके से संभालने के लिए कोड में सबसे छोटा परिवर्तन क्या हो सकता है?
अपडेट: मैंने fscanf() को fgets() + sscanf() के साथ बदलने के लिए प्रश्न संपादित किया, जो मेरा कोड वास्तव में उपयोग कर रहा है। मैंने वास्तव में यह नहीं सोचा था कि यह प्रासंगिक था जब मैंने पहली बार सवाल लिखा था, इसलिए मैंने इसे fscanf() में सरल बना दिया।
यदि आप 'स्कैनफ़'' का उपयोग करके इसे पार्स करते थे, तो आप पहले 'शीर्षक: डेटा शीर्षक: डेटा' (यानी सभी एक पंक्ति पर) का विश्लेषण कर सकते थे। यदि आप मूल्यों में व्हाइटस्पेस को अनुमति देना चाहते हैं, तो टर्मिनेटर क्या होगा? यदि नई लाइन है, तो ऐसा लगता है कि आपका मूल कोड थोड़ा सा था ... –
इसके अलावा, आप 'str' buffer के आकार पर कैसे निर्णय लेते हैं, और आप कैसे सुनिश्चित करते हैं कि यह अतिप्रवाह नहीं है? –
हां, जब डेटा में व्हाइटस्पेस हो सकता है तो नई लाइन टर्मिनेटर –