Programming in C—Binary File I/O Funtions.
hive-175254·@peerzadazeeshan·
0.000 HBDProgramming in C—Binary File I/O Funtions.
<div class="text-justify"> ##### <center>Hello Everyone</center> <center> </center> <center><sup>[Image Source](https://images.app.goo.gl/6XzumkqqxC8QqusU7)</sup></center> I hope you all are fine and safe inside your homes. This is a weird time ongoing in the whole world and I hope it will get over soon. As during this time, everyone is locked into their homes. I want to share C programming language with you. I hope you guys like it, so lets happen today's topic. #### <center> Binary File Input Output (I/O) Functions</center> Have you ever thought, how can a large amount of numerical data be stored in file? Is it sufficient to store in text mode? Well, a large amount of numerical data can not be stored in text mode. In such a case **Binary File** is used. Working on binary files is identical to text file with rare discrepancies in the opening, reading and writing to file. Opening modes of binary files are **rb+, rb, wb+, wb, ab+** and **ab**. Only differences between opening modes of binary files and text files is that **b** is appended to indicate it is a ***Binary File**. ###### *fread() and fwrite()*— Functions for reading and writing Binary File. These two functions *fread()* and *fwrite()* are used for reading from and writing to a file on disk respective of binary files. ***fwrite()*** Functions *fwrite()* takes 4 arguments. Address, size of data should be written in disk, number of type of data and pointer to file where user wants to write. **Syntax:** <code>fwrite(address_data,size_data,numbers_data,pointer_to_file);</code> **Example:** <code>#include <stdio.h> struct marks { int m1, m2,m3,m4,m5; }; void main() { int n; struct marks m; FILE *fptr; if ((fptr = fopen("C:\\TURBOC3\\mark.bin","wb")) == NULL){ printf("File Cannot Open!"); exit(1); } printf("Enter 5 Students Marks\n"); for(n = 1; n <= 5; ++n) { printf("Enter English Mark of Student %d : ", n); scanf("%d",&m.m1); printf("Enter Math's Mark of Student %d : ", n); scanf("%d",&m.m2); printf("Enter Physics Mark of Student %d : ", n); scanf("%d",&m.m3); printf("Enter Chemistry Mark of Student %d : ", n); scanf("%d",&m.m4); printf("Enter Python Mark of Student %d : ", n); scanf("%d",&m.m5); fwrite(&m, sizeof(struct marks), 1, fptr); } fclose(fptr); }</code> ###### Output of above program: <center></center> <center><sup>Output got after execution of program</sup></center> In the above program, user can create a new file **mark.bin** in ***C:\\TURBOC3\\*** path. Structure of the marks with 5 integers are declared as m1,m2,m3,m4 and m5 and are defined it in new function **m** as main function. User can read 5 subject marks and can store value into the file with the help of **fwrite()** function. Address of the **m** is stored in first parameter and second parameter takes size of marks structured. Since, only one instance of **m** is to be inserted so third parameter is 1. ***fptr** points to the file where data is to be stored. On last step, file is closed. ***fread()*** The function **fread()** also takes the same 4 arguments which **fwrite()** takes. **Syntax:** <code>fread(address_data,size_data,numbers_data,pointer_to_file);</code> **Example:** <code>#include <stdio.h> struct marks { int m1, m2,m3,m4,m5; }; void main() { int n; struct marks m; FILE *fptr; if ((fptr = fopen("C:\\TURBOC3\\mark.bin","rb")) == NULL){ printf("Cannot Open File !"); exit(1); } printf("Marks are\n"); for(n = 1; n <= 5; ++n) { fread(&m, sizeof(struct marks), 1, fptr); printf("Student %d Marks : English: %d\t Maths : %d\t Physics: %d\t Chemistry : %d\t Python: %d\n",n, m.m1, m.m2, m.m3,m.m4,m.m5); } fclose(fptr); }</code> ###### Output of the above program: <center></center> <center><sup>Output got after execution of above program</sup></center> In the above program, user can read the same file **mark.bin** in ***C:\\TURBOC3\\*** path and loop through records respectively one by one. Simply, one marks record of marks size is read from the file indicated **fptr* into structure **m**. By doing all this procedure, user will get the same records which inserted in previous Example. <center></center> ##### My last posts on programming, if you want to read go through it. <center> 1: [Ist post—File processing](https://hive.blog/hive-122108/@peerzadazeeshan/c-programing-file-processing). 2: [2nd post—File Operations](https://hive.blog/hive-196387/@peerzadazeeshan/programming-in-c-file-operations) 3: [3rd post—Text File I/O](https://hive.blog/hive-122108/@peerzadazeeshan/programming-in-c-text-file-input-output-i-o) </center> <center></center> ##### <center>Thank you. #### I hope you guys liked my post. #### Keep Supporting. #### *STAY TUNED FOR NEXT POST* <center> |UPVOTE|COMMENT|RESTEEM| |-|-|-| |IF YOU|LIKED|MY POST| </center> </center> <center></center> <center></center> </div> <h3>Stay Home, Stay Safe</h3> #### <center>*@peerzadazeeshan*</center> </center></p></div> </div> </div>
👍 vikisecrets, bitshares101, awah, kryptarion, thedrollyears, crypto.piotr, khussan, cwow2, junnel123, worldhelper, teach-me, retinox, reverseacid, tipu, happy-soul, dappstats, cryptogambit, bartheek, ph-fund, chesatochi, pibyk, davidke20, mikitaly, lemon-shot, fortunex, zoniacb, josevas217, tysler, alokkumar121, conectionbot, help.venezuela, hope.venezuela, vortac, samminator, btcsam, vlemon, lanzjoseg, yurilaya, phbr, ritxi, truthtrader, achim03, karamyog, deathcross, steemitcentral, javb, hive-180870, vishalsingh4997, rzs, steemegg, josediccus, cryptomaniacsgr, carrieallen, gandhibaba, bboyady, sasaadrian, jagged, syedumair, project.hope, xpilar, gbenga, paragism, cyemela, minerthreat, bigpower, erica005, reflektor, bippe, hingsten, lrcconsult, brage, sunsan, felixgarciap, cyberspacegod, nutritree, tomlee,