create account

Programming in C—Binary File I/O Funtions. by peerzadazeeshan

View this thread on: hive.blogpeakd.comecency.com
· @peerzadazeeshan · (edited)
$16.15
Programming in C—Binary File I/O Funtions.
<div class="text-justify">

##### <center>Hello Everyone</center>

<center> ![images.jpeg](https://files.peakd.com/file/peakd-hive/peerzadazeeshan/Q84ngyN8-images.jpeg)</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>![IMG_20200430_190828.jpg](https://files.peakd.com/file/peakd-hive/peerzadazeeshan/1uB5yp9s-IMG_20200430_190828.jpg)</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>![IMG_20200430_203542.jpg](https://files.peakd.com/file/peakd-hive/peerzadazeeshan/RwkwHngd-IMG_20200430_203542.jpg)</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>![Logo.png](https://files.peakd.com/file/peakd-hive/peerzadazeeshan/i01yOun5-Logo.png)</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>![Logo.png](https://files.peakd.com/file/peakd-hive/peerzadazeeshan/i01yOun5-Logo.png)</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>![Logo.png](https://files.peakd.com/file/peakd-hive/peerzadazeeshan/i01yOun5-Logo.png)</center>

<center>![Created by @zord189](https://files.peakd.com/file/peakd-hive/peerzadazeeshan/UzLYooQj-peerzadazeeshan.gif)</center>
</div>

<h3>Stay Home, Stay Safe</h3>
#### <center>*@peerzadazeeshan*</center>
</center></p></div>
</div>

</div>
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 12 others
properties (23)
authorpeerzadazeeshan
permlinkprogramming-in-c-binary-file-i-o-funtions
categoryhive-175254
json_metadata{"app":"peakd/2020.04.5","format":"markdown","tags":["programming","education","edu-venezuela","upfundme","hive","posh"],"users":["peerzadazeeshan","zord189"],"links":["https://images.app.goo.gl/6XzumkqqxC8QqusU7","/hive-122108/@peerzadazeeshan/c-programing-file-processing","/hive-196387/@peerzadazeeshan/programming-in-c-file-operations","/hive-122108/@peerzadazeeshan/programming-in-c-text-file-input-output-i-o","/@zord189","/@peerzadazeeshan"],"image":["https://files.peakd.com/file/peakd-hive/peerzadazeeshan/Q84ngyN8-images.jpeg","https://files.peakd.com/file/peakd-hive/peerzadazeeshan/1uB5yp9s-IMG_20200430_190828.jpg","https://files.peakd.com/file/peakd-hive/peerzadazeeshan/RwkwHngd-IMG_20200430_203542.jpg","https://files.peakd.com/file/peakd-hive/peerzadazeeshan/i01yOun5-Logo.png","https://files.peakd.com/file/peakd-hive/peerzadazeeshan/UzLYooQj-peerzadazeeshan.gif"]}
created2020-04-30 15:20:33
last_update2020-04-30 15:25:06
depth0
children6
last_payout2020-05-07 15:20:33
cashout_time1969-12-31 23:59:59
total_payout_value7.186 HBD
curator_payout_value8.968 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length5,652
author_reputation20,072,110,145,141
root_title"Programming in C—Binary File I/O Funtions."
beneficiaries
0.
accountph-fund
weight2,000
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id97,098,206
net_rshares24,342,803,165,504
author_curate_reward""
vote details (76)
@crypto.piotr ·
@tipu curate
properties (22)
authorcrypto.piotr
permlinkq9pfe2
categoryhive-175254
json_metadata{"users":["tipu"],"app":"hiveblog/0.1"}
created2020-05-02 12:43:42
last_update2020-05-02 12:43:42
depth1
children1
last_payout2020-05-09 12:43:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length12
author_reputation27,396,789,428,606
root_title"Programming in C—Binary File I/O Funtions."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id97,138,116
net_rshares0
@tipu ·
<a href="https://tipu.online/hive_curator?crypto.piotr" target="_blank">Upvoted  &#128076;</a> (Mana: 24/30)
properties (22)
authortipu
permlinkre-q9pfe2-20200502t124357
categoryhive-175254
json_metadata""
created2020-05-02 12:43:57
last_update2020-05-02 12:43:57
depth2
children0
last_payout2020-05-09 12:43:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length108
author_reputation55,938,768,526,111
root_title"Programming in C—Binary File I/O Funtions."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id97,138,122
net_rshares0
@krischik ·
I suggest you learn how to embed code properly in your article. the best way to do is to use the three back tick syntax like this:

![image.png](https://files.peakd.com/file/peakd-hive/krischik/symK1JfH-image.png)

Adding the programming language might activate syntax highlight. Not on Steem/Hive right now but it might come later. 

The result looks like this.

```ruby
   if Accounts.length == 0 then
      puts "No accounts found.".yellow
   else
      pp Accounts
   end
```
properties (22)
authorkrischik
permlinkre-peerzadazeeshan-q9lyja
categoryhive-175254
json_metadata{"tags":["hive-175254"],"app":"peakd/2020.04.5"}
created2020-04-30 15:47:36
last_update2020-04-30 15:47:36
depth1
children1
last_payout2020-05-07 15:47:36
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length479
author_reputation15,247,708,436,415
root_title"Programming in C—Binary File I/O Funtions."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id97,098,630
net_rshares0
@peerzadazeeshan ·
Thanks for the suggestion, I will do it in my next post.
properties (22)
authorpeerzadazeeshan
permlinkre-krischik-q9m0bb
categoryhive-175254
json_metadata{"tags":["hive-175254"],"app":"peakd/2020.04.5"}
created2020-04-30 16:26:00
last_update2020-04-30 16:26:00
depth2
children0
last_payout2020-05-07 16:26:00
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length56
author_reputation20,072,110,145,141
root_title"Programming in C—Binary File I/O Funtions."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id97,099,210
net_rshares0
@project.hope ·
I'm resteeming this post. Hopefully it will get some more exposure and engagement.

Yours, Piotr
properties (22)
authorproject.hope
permlinkq9m142
categoryhive-175254
json_metadata{"app":"hiveblog/0.1"}
created2020-04-30 16:42:33
last_update2020-04-30 16:42:33
depth1
children1
last_payout2020-05-07 16:42:33
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length96
author_reputation3,880,876,099,761
root_title"Programming in C—Binary File I/O Funtions."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id97,099,596
net_rshares0
@peerzadazeeshan ·
Thank you for helping out.
properties (22)
authorpeerzadazeeshan
permlinkq9m173
categoryhive-175254
json_metadata{"app":"hiveblog/0.1"}
created2020-04-30 16:45:06
last_update2020-04-30 16:45:06
depth2
children0
last_payout2020-05-07 16:45:06
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length26
author_reputation20,072,110,145,141
root_title"Programming in C—Binary File I/O Funtions."
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id97,099,629
net_rshares0