Read Write String in File

Read Write String in File: कई बार हमें ऐसी जरूरतें होती हैं कि पूरा का पूरा String किसी File में लिखना होता है। हम जानते हैं कि String Accept करने के लिए व उस String को Screen पर Print करने के लिए हम gets() व puts() Functions का प्रयोग करते हैं।

ठीक इसी प्रकार से किसी String को किसी File में लिखने के लिए या किसी File से पूरा का पूरा String प्राप्त करने के लिए हमें fgets() व fputs() Function Use करना पडता है। चलिए, इन Function को समझते हैं:

fgets ( )

Syntax:         fgets ( ch, size, FILE pointer or Stream )

ch: ये वह Variable है जिसमें किसी File या Stream से प्राप्त किये गए strings को store किया जाता है। ये एक One-Dimensional Array होता है।

size: यहां ch Variable में Store होने वाले characters की संख्‍या बतानी होती है ताकि ch नाम का Array Over Flow ना हो।

FILE pointer या Stream: ये या तो कोई FILE Pointer हो सकता है या फिर standard Input Device Keyboard होता है।

fputs ( )

Syntax:         fputs ( ch, FILE pointer or Stream )

ch:     ये वह Variable है, जिसमें gets() या fgets() Function द्वारा प्राप्त String होता है।

FILE pointer या Stream: ये या तो कोई FILE Pointer हो सकता है या फिर standard Output Device हो सकता है।

हम अपनी जरूरत के अनुसार इन Functions का प्रयोग कर सकते हैं। लेकिन अभी तक हमने जिन भी Functions को Use किया है, उनमें से कोई भी Function Formatting की सुविधा नहीं देता है।

यदि हमें File में Store होने वाले Data को किसी Format में Store करना हो तो हमें अन्‍य Functions को Use करना होता है। “C” में Formatted Data Storing के लिए दो Functions हैं, जिनसे एक File में Store होने वाले Data विशेष format में Store होते हैं।

fprintf( )

Syntax: fprintf ( fp, “Message And Control Strings” , Arguments);

यहां fp Open की गई File का File Pointer है जो Input होने वाले Data को File में Store कर देता है। हम यहां वे सभी Formatting Use कर सकते हैं, जिन्हे printf() Function में Use किया जाता है। printf() Function व fprintf() Function में यही अन्तर है कि printf() Function सभी मानों को screen पर Print करता है यानी VDU की Memory में store करता है, जबकि fprintf() Function सभी मानों को Open की गई File में Store करता है।

fscanf( )

Syntax: fscanf ( fp, “Control Strings” , Arguments);

जिस प्रकार से scanf() Function Keyboard से values Accept करता है, उसी प्रकार से fscanf() Function किसी File में Store किये गए मानों को Accept करता है। अब हम एक Program बनाते हैं, जिसमें Data, Formatted रूप में Data File में Store होंगे:

// Program
#include<stdio.h>

main()
{
	FILE *fp;
	char again = 'y';
	char name[20];
	int age;
	float salary;
	clrscr();

	fp = fopen("Emp.rec", "w");

	while( again =='y' || again == 'Y' )
	{
		printf("\n Enter Name:  Age and Salary");
		scanf("%s%d%f", name, &age,&salary);
		fprintf(fp,"%s%d%f\n", name, age, salary);
		printf("\n Do You Want To Enter Another Record : Y/N ");
		fflush(stdin);
		again = getchar();
	}
	fclose(fp);
}

इस प्रोग्राम में किसी भी Employee के Record को Store करने के लिए एक File को Writing Mode में Open किया गया है। इस प्रोग्राम को Execute करने पर यह प्रोग्राम सभी Variables के Definition व Declaration के बाद एक printf() व scanf() Function द्वारा User Data Input करता है।

यहां fprintf() Function को Use किया गया है। ये Function उस File को लिखता है, जिस File का File Pointer इन Arguments को Accept करने के लिए fprintf() Function में Use किया गया है।

इस Program में हमने fprintf() Function में fp नाम का File Pointer Use किया है, जो कि Employee.rec नाम की Open की गई File का File Pointer है। User जो भी Data Input करता है, वो क्रमश: name, age व salary नाम के Variable में जाकर store हो जाते हैं। फिर इन Variables के Data को fprintf() Function द्वारा File में Write कर दिया जाता है।

इस वजह से ये सभी Data यानी Name, Age व Salary दिए गए Format में ही Emp.rec नाम की File में Store होते है। फिर Program Control User को एक printf() Function द्वारा Message देता है, कि User और Data Input करना चाहता है या नहीं।

यदि User Y press करता है, तो वापस ये क्रम दोहराया जाता है और वापस Data File में store हो जाते हैं। यदि User N press करता है तो Program Control Program से बाहर आ जाता है।

जिस प्रकार से printf() Function में & Address Operator का प्रयोग नहीं किया जाता है, उसी प्रकार से File में Data Write करने के लिए भी fprintf() Function के साथ केवल उस Variable को लिखा जाता है, जिसमें User द्वारा Input किया गया Data होता है।

इस प्रकार से name, age व salary नाम के Variable में Keyboard से प्राप्त किये गए Data को File में Write कर दिया जाता है। यदि Emp.rec File में हमने जो Data Store किये हैं, उसे उसी Format में प्राप्त करना हो, जिस Format में ये File में Stored हैं, तो हमें fscanf() Function का प्रयोग करना पडता है। ऊपर के प्रोग्र्राम द्वारा Input किये गए Data को अगले प्रोग्राम द्वारा Screen पर print किया गया है-

Buy this eBook to read more about “Read Write String in C

Read Write Integer in File
Read Write Record in File - The Binary Mode

C Programming Language in Hindi - BccFalna.com ये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook  C Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C Programming Language in Hindi | Page: 477 + 265 | Format: PDF

BUY NOW GET DEMO REVIEWS