Read Write String in File

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 DOWNLOAD READ ONLINE

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 किया गया है-

// Program
#include<stdio.h>

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

	fp=fopen("emp.rec","r");
	while(fscanf(fp,"%s %d %f",name,&age, &salary) != EOF )
	printf("\n %s %d %f",name, age, salary);
	fclose(fp);

	getch();
}

इस Program से emp.rec नाम की File में Store किये गए Data वापस screen पर ज्यों का त्यों print हो जाते हैं।

किसी File से Data Reading / Writing के लिए हमें fopen() Function का प्रयोग करना होता है, जो कि एक File Pointer बनाता है। ये File Pointer उस File को Point करता है। MS-DOS में भी पांच Predefined Functions हैं। इन्हें Access करने के लिए हमें fopen() Function की जरूरत नहीं होती हैं। ये Standard File pointers निम्नानुसार हैं-

      stdin               Standard Input Device ( Keyboard )

      stdout            Standard Output Device (VDU )

      stderr             Standard Error Device (VDU )

      stdaux           Standard Auxiliary Device (Serial Ports )

      stdprn            Standard Printing Device ( Parallel Printer )

ये सभी Standard File Pointers stdio.h नाम की Header File मे Define हैं, इसलिए इनको Use करने के लिए इस Header File को Program में Include करना जरूरी होता है।

किसी File में अंको को Store करने के लिए हमारे पास fprintf() ही एक Function है। यानी हम इसी Function द्वारा किसी File में किसी भी प्रकार के अंक को Store कर सकते हैं। जब हम File में अंकों को Store करते हैं, तो ये अंक File में String के रूप में Store होते हैं।

जैसे float प्रकार का एक मान 123.223 यदि File में Store किया जाए तो ये मान File में 4 Byte ना लेकर 7 Byte की Space लेगा, क्योंकि ये File में Characters के एक समूह के रूप में Store होता है। इसलिए यदि हमें काफी बडी संख्‍या को File में Store करना हो तो File में बहुत अधिक Storage Space Reserve हो जाएगा। इस समस्या से बचने के लिए हम File को Text Mode मे Open ना करके Binary Mode में Open कर सकते हैं।

जब हम File को Binary Mode में Open करते हैं, तब हमें fread() व fwrite() Function का प्रयोग करना चाहिये। ये Functions अंकों को Binary Mode में Store करता है। यानी कोई अंक Memory में जितने Byte लेता है, इन Functions के प्रयोग से वह अंक File में भी उतने ही Byte की Space लेता है। Read Write String in File – Wiki )

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

******

ये पोस्‍ट Useful लगा हो, तो Like कर दीजिए।

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 DOWNLOAD READ ONLINE

Download All Hindi EBooks

सभी हिन्दी EBooks C, C++, Java, C#, ASP.NET, Oracle, Data Structure, VB6, PHP, HTML5, JavaScript, jQuery, WordPress, etc... के DOWNLOAD LINKS प्राप्‍त करें, अपने EMail पर।

Register करके Login करें। इस Popup से छुटकारा पाएें।