C ++ fseek () - C ++ मानक पुस्तकालय

C ++ में fseek () फ़ंक्शन दिए गए फ़ाइल स्ट्रीम के लिए फ़ाइल स्थिति संकेतक सेट करता है।

Fseek () फ़ंक्शन को हेडर फ़ाइल में परिभाषित किया गया है।

fseek () प्रोटोटाइप

 int fseek (FILE * स्ट्रीम, लॉन्ग ऑफ़सेट, इंट ओरिजिन);

यदि फ़ाइल बाइनरी मोड में खोली गई है, तो फ़ाइल पॉइंटर की नई स्थिति मूल से बिल्कुल बाइट्स ऑफसेट है।

यदि फ़ाइल पाठ मोड में खोली गई है, तो ऑफसेट के लिए समर्थित मान हैं:

  • शून्य: यह मूल के किसी भी मूल्य अर्थात SEEK_SET, SEEK_CUR और SEEK_END के साथ काम करता है।
  • मान फेल (कॉल) के लिए एक कॉल द्वारा लौटाया गया: यह केवल SEEK_SET की उत्पत्ति के साथ काम करता है।

यदि स्ट्रीम व्यापक-उन्मुख है, तो पाठ और बाइनरी स्ट्रीम दोनों के प्रतिबंध लागू होते हैं यानी SEEK_SET के साथ ftell के परिणाम की अनुमति दी जाती है और SEEK_SET और SEEK_CUR से शून्य ऑफ़सेट की अनुमति दी जाती है, लेकिन SEEK_END नहीं।

Fseek फंक्शन भी ungetc के प्रभाव को कम करता है और यदि लागू हो तो फ़ाइल की स्थिति को साफ़ करता है।

यदि कोई पढ़ने या लिखने में त्रुटि होती है, तो फेरर सेट किया जाता है और फ़ाइल स्थिति अप्रभावित रहती है।

fseek () पैरामीटर

  • स्ट्रीम: संशोधित करने के लिए फ़ाइल स्ट्रीम।
  • ऑफसेट: मूल से विस्थापित करने के लिए वर्णों की संख्या।
  • उत्पत्ति: ऑफसेट में जोड़ने के लिए संदर्भ के रूप में प्रयुक्त स्थिति। इसके निम्नलिखित मूल्य हो सकते हैं:
fseek () मूल मान
मान विवरण
SEEK_SET फ़ाइल की शुरुआत
SEEK_CUR फ़ाइल पॉइंटर की वर्तमान स्थिति
SEEK_END फाइल समाप्त

fseek () वापसी मान

  • सफलता पर fseek () फ़ंक्शन शून्य, नॉनजेरो अन्यथा देता है।

उदाहरण: fseek () फ़ंक्शन कैसे काम करता है?

 #include int main() ( FILE* fp = fopen("example.txt","w+"); char ch; fputs("Erica 25 Berlin", fp); rewind(fp); printf("Name: "); while((ch=fgetc(fp))!=' ') putchar(ch); putchar(''); printf("Age: "); fseek(fp,10,SEEK_SET); while((ch=fgetc(fp))!=' ') putchar(ch); putchar(''); printf("City: "); fseek(fp,15,SEEK_SET); while((ch=fgetc(fp))!=EOF) putchar(ch); putchar(''); fclose(fp); return 0; )

जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 नाम: एरिका उम्र: 25 शहर: बर्लिन

दिलचस्प लेख...