SlideShare a Scribd company logo
Jaypee Institute of Information Technology
University, Noida
File Handling in C – A review
Jaypee Institute of Information Technology
University, Noida
Introduction
 Files are places where data can be stored
permanently.
 Some programs expect the same set of data
to be fed as input every time it is run.
 Cumbersome.
 Better if the data are kept in a file, and the
program reads from the file.
 Programs generating large volumes of output.
 Difficult to view on the screen.
 Better to store them in a file for later viewing/
processing
Jaypee Institute of Information Technology
University, Noida
Introduction
 Data files
 When you use a file to store data for use by a
program, that file usually consists of text
(alphanumeric data) and is therefore called a
text file.
 Can be created, updated, and processed by C
programs
 Are used for permanent storage of large
amounts of data
 Storage of data in variables and arrays is only
temporary
Jaypee Institute of Information Technology
University, Noida
Files and Streams
 C views each file as a sequence of bytes
 File ends with the end-of-file marker
 Stream created when a file is opened
 Provide communication channel between files
and programs
 Opening a file returns a pointer to a FILE
structure
Jaypee Institute of Information Technology
University, Noida
Basic File Operations
 Opening a file
 Reading data from a file
 Writing data to a file
 Closing a file
Jaypee Institute of Information Technology
University, Noida
Opening a File
 A file must be “opened” before it can be used.
FILE *fp;
:
fp = fopen (filename, mode);
 fp is declared as a pointer to the data type FILE.
 filename is a string - specifies the name of the file.
 fopen returns a pointer to the file which is used in all
subsequent file operations.
 mode is a string which specifies the purpose of opening the
file:
“r” :: open the file for reading only
“w” :: open the file for writing only
“a” :: open the file for appending data to it
Jaypee Institute of Information Technology
University, Noida
MODES
 r - open a file in read-mode, set the pointer to the beginning of the file.
 w - open a file in write-mode, set the pointer to the beginning of the file.
 a - open a file in write-mode, set the pointer to the end of the file.
 rb - open a binary-file in read-mode, set the pointer to the beginning of the file.
 wb - open a binary-file in write-mode, set the pointer to the beginning of the file.
 ab - open a binary-file in write-mode, set the pointer to the end of the file.
 r+ - open a file in read/write-mode, if the file does not exist, it will not be created.
 w+ - open a file in read/write-mode, set the pointer to the beginning of the file.
 a+ - open a file in read/append mode.
 r+b - open a binary-file in read/write-mode, if the file does not exist, it will not be created.
 w+b - open a binary-file in read/write-mode, set the pointer to the beginning of the file.
 a+b - open a binary-file in read/append mode.
Jaypee Institute of Information Technology
University, Noida
Contd.
 Points to note:
 Several files may be opened at the same time.
 For the “w” and “a” modes, if the named file does
not exist, it is automatically created.
 For the “w” mode, if the named file exists, its
contents will be overwritten.
Jaypee Institute of Information Technology
University, Noida
Examples
FILE *in, *out ;
in = fopen (“mydata.dat”, “r”) ;
out = fopen (“result.dat”, “w”);
FILE *empl ;
char filename[25];
scanf (“%s”, filename);
empl = fopen (filename, “r”) ;
Jaypee Institute of Information Technology
University, Noida
Closing a File
 After all operations on a file have been completed, it
must be closed.
 Ensures that all file data stored in memory buffers are
properly written to the file.
 General format: fclose (file_pointer) ;
FILE *xyz ;
xyz = fopen (“test.txt”, “w”) ;
…….
fclose (xyz) ;
Jaypee Institute of Information Technology
University, Noida
Contd
 fclose( FILE pointer )
 Closes specified file
 Performed automatically when program ends
 Good practice to close files explicitly
 system resources are freed.
 Also, you might not find that all the information
that you've written to the file has actually been
written to disk until the file is closed.
 feof( FILE pointer )
 Returns true if end-of-file indicator (no more data to
process) is set for the specified file
Jaypee Institute of Information Technology
University, Noida
Files and Streams
 Read/Write functions in standard library
 getc
 Reads one character from a file
 Takes a FILE pointer as an argument
 fgetc( stdin ) equivalent to getchar()
 putc
 Writes one character to a file
 Takes a FILE pointer and a character to write as an
argument
 fputc( 'a', stdout ) equivalent to putchar(
'a' )
 scanf / fprintf
 File processing equivalents of scanf and printf
Jaypee Institute of Information Technology
University, Noida
Read/Write Operations on Files
 The simplest file input-output (I/O) function are getc and putc.
 getc is used to read a character from a file and return it.
char ch; FILE *fp;
…..
ch = getc (fp) ;
 getc will return an end-of-file marker EOF, when the end of the
file has been reached.
 putc is used to write a character to a file.
char ch; FILE *fp;
……
putc (ch, fp) ;
Jaypee Institute of Information Technology
University, Noida
Example :: convert a text file to all
UPPERCASE
main() {
FILE *in, *out ;
char c ;
in = fopen (“infile.dat”, “r”) ;
out = fopen (“outfile.dat”, “w”) ;
while ((c = getc (in)) != EOF)
putc (toupper (c), out);
fclose (in) ;
fclose (out) ;
}
Jaypee Institute of Information Technology
University, Noida
Contd.
 We can also use the file versions of scanf
and printf, called fscanf and fprintf.
 General format:
fscanf (file_pointer, control_string, list) ;
fprintf (file_pointer, control_string, list) ;
 Examples:
fscanf (fp, “%d %s %f”, &roll, dept_code, &cgpa) ;
fprintf (out, “nThe result is: %d”, xyz) ;
Jaypee Institute of Information Technology
University, Noida
Contd.
fprintf
 Used to print to a file
 It is like printf, except first argument is a FILE
pointer (pointer to the file you want to print in)
Jaypee Institute of Information Technology
University, Noida
Some Points
 How to check EOF condition when using
fscanf?
 Use the function feof
if (feof (fp))
printf (“n Reached end of file”) ;
 How to check successful open?
 For opening in “r” mode, the file must exist.
if (fp == NULL)
printf (“n Unable to open file”) ;
Jaypee Institute of Information Technology
University, Noida
fread( ) and fwrite( )
size_t fread(void *buffer, size_t numbytes, size_t count, FILE *a_file);
size_t fwrite(void *buffer, size_t numbytes, size_t count, FILE
*a_file);
 Buffer in fread is a pointer to a region of memory that will
receive the data from the file. Buffer in fwrite() is a pointer to
the information that will be written to the file.
 The second argument is the size of the element; it is in bytes.
For example, if you have an array of characters, you would
want to read it in one byte chunks, so numbytes is one. You
can use the sizeof operator to get the size of the various
datatypes; for example, if you have a variable, int x; you can
get the size of x with sizeof(x);
Jaypee Institute of Information Technology
University, Noida
Contd..
 The third argument is simply how many elements you
want to read or write; for example, if you pass a 100
element array
 The final argument is simply the file pointer
 Size_t is an unsigned integer.
 fread() returns number of items read and fwrite()
returns number of items written
 To check to ensure the end of file was reached, use
the feof function, which accepts a FILE pointer and
returns true if the end of the file has been reached.
Jaypee Institute of Information Technology
University, Noida
/* a simple example of using fread and fwrite to read and write an array
of structures
*/
#include <stdio.h>
#include <conio.h>
int main()
{
FILE *fp;
struct prod {
int cat_num;
float cost;
};
typedef struct prod product;
product a[3] = {{2,20.1},{4,40.1},{6,60.1}};
product k, *p = &k;
Jaypee Institute of Information Technology
University, Noida
fp = fopen("c:fread1.txt","w+");
// write the entire array into the file pointed to by fp
fwrite(a, sizeof(product), 3, fp);
// prepare for reading from the beginning of the file
rewind(fp);
// read from the file one product at a time
for (i=0; i<3; i++) {
fread(p, sizeof(product), 1, fp);
printf(" product %d, cat_num=%d, cost=%fn", i,p-
>cat_num,p->cost);
}
getch();
}
Jaypee Institute of Information Technology
University, Noida
Example: Merge two files
#include <stdio.h>
int main()
{ FILE *fileA, /* first input file */
*fileB, /* second input file */
*fileC; /* output file to be created */
int num1, /* number to be read from first file */
num2; /* number to be read from second file */
int f1, f2;
/* Open files for processing */
fileA = fopen("class1.txt","r");
fileB = fopen("class2.txt","r");
fileC = fopen("class.txt","w");
Jaypee Institute of Information Technology
University, Noida
/* As long as there are numbers in both files, read and compare
numbersone by one. Write the smaller number to the output file
and read the next number in the file from which the smaller
number is read. */
f1 = fscanf(fileA, "%d", &num1);
f2 = fscanf(fileB, "%d", &num2);
while ((f1!=EOF) && (f2!=EOF)){
if (num1 < num2){
fprintf(fileC,"%dn", num1);
f1 = fscanf(fileA, "%d", &num1);
}
else if (num2 < num1) {
fprintf(fileC,"%dn", num2);
f2 = fscanf(fileB, "%d", &num2);
}
else { /* numbs are equal:read from both files */
fprintf(fileC,"%dn", num1);
f1 = fscanf(fileA, "%d", &num1);
f2 = fscanf(fileB, "%d", &num2);
}
}
Jaypee Institute of Information Technology
University, Noida
while (f1!=EOF){/* if reached end of second file, read
the remaining numbers from first file and write to
output file */
fprintf(fileC,"%dn", num1);
f1 = fscanf(fileA, "%d", &num1);
}
while (f2!=EOF){ if reached the end of first file, read
the remaining numbers from second file and write
to output file */
fprintf(fileC,"%dn", num2);
f2 = fscanf(fileB, "%d", &num2);
}
/* close files */
fclose(fileA);
fclose(fileB);
fclose(fileC);
return 0;
} /* end of main */
Jaypee Institute of Information Technology
University, Noida
Exercises
1. Write a C language program to read “mark.dat” file containing
rollno, name,marks of three subjects and calculate total mark,
result in grade and store same in “result.dat” file. (Note : Make
use of fread and fwrite functions)
2. Write a C language program to read a cust.dat file containing
meter number, name, current reading & previous reading. Read
the same file. Calculate unit and total amounts according to the
following rules —
Unit rate
0-50 1.00
51-100 1.50
> 100 2.00
Store meter number ,name ,unit & amount in master.dat file.

More Related Content

PPTX
PPS PPT 2.pptx
PPT
file_handling_in_c.ppt
PPTX
File management
PDF
EASY UNDERSTANDING OF FILES IN C LANGUAGE.pdf
PDF
Handout#01
PDF
FILES IN C
DOCX
C UNIT-5 PREPARED BY M V BRAHMANANDA REDDY
PDF
VIT351 Software Development VI Unit5
PPS PPT 2.pptx
file_handling_in_c.ppt
File management
EASY UNDERSTANDING OF FILES IN C LANGUAGE.pdf
Handout#01
FILES IN C
C UNIT-5 PREPARED BY M V BRAHMANANDA REDDY
VIT351 Software Development VI Unit5

Similar to file_handling_in_c.ppt (20)

PDF
Advance C Programming UNIT 4-FILE HANDLING IN C.pdf
PPT
PPT
Unit5
PPTX
want to learn files,then just use this ppt to learn
PPTX
File Management in C
PPT
Lecture 20 - File Handling
PDF
Files in C
PPTX
File in C language
DOCX
PPTX
Data Structure Using C - FILES
PPTX
File management
PPTX
Concept of file handling in c
PDF
File handling C program
PPT
File handling in 'C'
PPTX
INput output stream in ccP Full Detail.pptx
PPTX
Programming C- File Handling , File Operation
PPT
new pdfrdfzdfzdzzzzzzzzzzzzzzzzzzzzzzzzzzgggggggggggggggggggggggggggggggggggg...
PDF
Chapter 13.1.10
PPTX
File handling in c
PDF
file_c.pdf
Advance C Programming UNIT 4-FILE HANDLING IN C.pdf
Unit5
want to learn files,then just use this ppt to learn
File Management in C
Lecture 20 - File Handling
Files in C
File in C language
Data Structure Using C - FILES
File management
Concept of file handling in c
File handling C program
File handling in 'C'
INput output stream in ccP Full Detail.pptx
Programming C- File Handling , File Operation
new pdfrdfzdfzdzzzzzzzzzzzzzzzzzzzzzzzzzzgggggggggggggggggggggggggggggggggggg...
Chapter 13.1.10
File handling in c
file_c.pdf
Ad

More from DHARUNESHBOOPATHY (6)

PPTX
Common Errors.pptx
PPT
lipids 2.ppt
PPTX
PPTX
Switched Mode Power Supply (BEEE).pptx
PPTX
UNIT 3 Analog Electronics.pptx
PDF
BEEE NOTES.pdf
Common Errors.pptx
lipids 2.ppt
Switched Mode Power Supply (BEEE).pptx
UNIT 3 Analog Electronics.pptx
BEEE NOTES.pdf
Ad

Recently uploaded (20)

PPTX
GDM (1) (1).pptx small presentation for students
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
PPH.pptx obstetrics and gynecology in nursing
PPTX
Institutional Correction lecture only . . .
PDF
01-Introduction-to-Information-Management.pdf
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PDF
Classroom Observation Tools for Teachers
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
Complications of Minimal Access Surgery at WLH
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Insiders guide to clinical Medicine.pdf
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
master seminar digital applications in india
GDM (1) (1).pptx small presentation for students
STATICS OF THE RIGID BODIES Hibbelers.pdf
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
VCE English Exam - Section C Student Revision Booklet
PPH.pptx obstetrics and gynecology in nursing
Institutional Correction lecture only . . .
01-Introduction-to-Information-Management.pdf
Module 4: Burden of Disease Tutorial Slides S2 2025
Classroom Observation Tools for Teachers
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
Anesthesia in Laparoscopic Surgery in India
Complications of Minimal Access Surgery at WLH
Pharmacology of Heart Failure /Pharmacotherapy of CHF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Insiders guide to clinical Medicine.pdf
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
Microbial disease of the cardiovascular and lymphatic systems
master seminar digital applications in india

file_handling_in_c.ppt

  • 1. Jaypee Institute of Information Technology University, Noida File Handling in C – A review
  • 2. Jaypee Institute of Information Technology University, Noida Introduction  Files are places where data can be stored permanently.  Some programs expect the same set of data to be fed as input every time it is run.  Cumbersome.  Better if the data are kept in a file, and the program reads from the file.  Programs generating large volumes of output.  Difficult to view on the screen.  Better to store them in a file for later viewing/ processing
  • 3. Jaypee Institute of Information Technology University, Noida Introduction  Data files  When you use a file to store data for use by a program, that file usually consists of text (alphanumeric data) and is therefore called a text file.  Can be created, updated, and processed by C programs  Are used for permanent storage of large amounts of data  Storage of data in variables and arrays is only temporary
  • 4. Jaypee Institute of Information Technology University, Noida Files and Streams  C views each file as a sequence of bytes  File ends with the end-of-file marker  Stream created when a file is opened  Provide communication channel between files and programs  Opening a file returns a pointer to a FILE structure
  • 5. Jaypee Institute of Information Technology University, Noida Basic File Operations  Opening a file  Reading data from a file  Writing data to a file  Closing a file
  • 6. Jaypee Institute of Information Technology University, Noida Opening a File  A file must be “opened” before it can be used. FILE *fp; : fp = fopen (filename, mode);  fp is declared as a pointer to the data type FILE.  filename is a string - specifies the name of the file.  fopen returns a pointer to the file which is used in all subsequent file operations.  mode is a string which specifies the purpose of opening the file: “r” :: open the file for reading only “w” :: open the file for writing only “a” :: open the file for appending data to it
  • 7. Jaypee Institute of Information Technology University, Noida MODES  r - open a file in read-mode, set the pointer to the beginning of the file.  w - open a file in write-mode, set the pointer to the beginning of the file.  a - open a file in write-mode, set the pointer to the end of the file.  rb - open a binary-file in read-mode, set the pointer to the beginning of the file.  wb - open a binary-file in write-mode, set the pointer to the beginning of the file.  ab - open a binary-file in write-mode, set the pointer to the end of the file.  r+ - open a file in read/write-mode, if the file does not exist, it will not be created.  w+ - open a file in read/write-mode, set the pointer to the beginning of the file.  a+ - open a file in read/append mode.  r+b - open a binary-file in read/write-mode, if the file does not exist, it will not be created.  w+b - open a binary-file in read/write-mode, set the pointer to the beginning of the file.  a+b - open a binary-file in read/append mode.
  • 8. Jaypee Institute of Information Technology University, Noida Contd.  Points to note:  Several files may be opened at the same time.  For the “w” and “a” modes, if the named file does not exist, it is automatically created.  For the “w” mode, if the named file exists, its contents will be overwritten.
  • 9. Jaypee Institute of Information Technology University, Noida Examples FILE *in, *out ; in = fopen (“mydata.dat”, “r”) ; out = fopen (“result.dat”, “w”); FILE *empl ; char filename[25]; scanf (“%s”, filename); empl = fopen (filename, “r”) ;
  • 10. Jaypee Institute of Information Technology University, Noida Closing a File  After all operations on a file have been completed, it must be closed.  Ensures that all file data stored in memory buffers are properly written to the file.  General format: fclose (file_pointer) ; FILE *xyz ; xyz = fopen (“test.txt”, “w”) ; ……. fclose (xyz) ;
  • 11. Jaypee Institute of Information Technology University, Noida Contd  fclose( FILE pointer )  Closes specified file  Performed automatically when program ends  Good practice to close files explicitly  system resources are freed.  Also, you might not find that all the information that you've written to the file has actually been written to disk until the file is closed.  feof( FILE pointer )  Returns true if end-of-file indicator (no more data to process) is set for the specified file
  • 12. Jaypee Institute of Information Technology University, Noida Files and Streams  Read/Write functions in standard library  getc  Reads one character from a file  Takes a FILE pointer as an argument  fgetc( stdin ) equivalent to getchar()  putc  Writes one character to a file  Takes a FILE pointer and a character to write as an argument  fputc( 'a', stdout ) equivalent to putchar( 'a' )  scanf / fprintf  File processing equivalents of scanf and printf
  • 13. Jaypee Institute of Information Technology University, Noida Read/Write Operations on Files  The simplest file input-output (I/O) function are getc and putc.  getc is used to read a character from a file and return it. char ch; FILE *fp; ….. ch = getc (fp) ;  getc will return an end-of-file marker EOF, when the end of the file has been reached.  putc is used to write a character to a file. char ch; FILE *fp; …… putc (ch, fp) ;
  • 14. Jaypee Institute of Information Technology University, Noida Example :: convert a text file to all UPPERCASE main() { FILE *in, *out ; char c ; in = fopen (“infile.dat”, “r”) ; out = fopen (“outfile.dat”, “w”) ; while ((c = getc (in)) != EOF) putc (toupper (c), out); fclose (in) ; fclose (out) ; }
  • 15. Jaypee Institute of Information Technology University, Noida Contd.  We can also use the file versions of scanf and printf, called fscanf and fprintf.  General format: fscanf (file_pointer, control_string, list) ; fprintf (file_pointer, control_string, list) ;  Examples: fscanf (fp, “%d %s %f”, &roll, dept_code, &cgpa) ; fprintf (out, “nThe result is: %d”, xyz) ;
  • 16. Jaypee Institute of Information Technology University, Noida Contd. fprintf  Used to print to a file  It is like printf, except first argument is a FILE pointer (pointer to the file you want to print in)
  • 17. Jaypee Institute of Information Technology University, Noida Some Points  How to check EOF condition when using fscanf?  Use the function feof if (feof (fp)) printf (“n Reached end of file”) ;  How to check successful open?  For opening in “r” mode, the file must exist. if (fp == NULL) printf (“n Unable to open file”) ;
  • 18. Jaypee Institute of Information Technology University, Noida fread( ) and fwrite( ) size_t fread(void *buffer, size_t numbytes, size_t count, FILE *a_file); size_t fwrite(void *buffer, size_t numbytes, size_t count, FILE *a_file);  Buffer in fread is a pointer to a region of memory that will receive the data from the file. Buffer in fwrite() is a pointer to the information that will be written to the file.  The second argument is the size of the element; it is in bytes. For example, if you have an array of characters, you would want to read it in one byte chunks, so numbytes is one. You can use the sizeof operator to get the size of the various datatypes; for example, if you have a variable, int x; you can get the size of x with sizeof(x);
  • 19. Jaypee Institute of Information Technology University, Noida Contd..  The third argument is simply how many elements you want to read or write; for example, if you pass a 100 element array  The final argument is simply the file pointer  Size_t is an unsigned integer.  fread() returns number of items read and fwrite() returns number of items written  To check to ensure the end of file was reached, use the feof function, which accepts a FILE pointer and returns true if the end of the file has been reached.
  • 20. Jaypee Institute of Information Technology University, Noida /* a simple example of using fread and fwrite to read and write an array of structures */ #include <stdio.h> #include <conio.h> int main() { FILE *fp; struct prod { int cat_num; float cost; }; typedef struct prod product; product a[3] = {{2,20.1},{4,40.1},{6,60.1}}; product k, *p = &k;
  • 21. Jaypee Institute of Information Technology University, Noida fp = fopen("c:fread1.txt","w+"); // write the entire array into the file pointed to by fp fwrite(a, sizeof(product), 3, fp); // prepare for reading from the beginning of the file rewind(fp); // read from the file one product at a time for (i=0; i<3; i++) { fread(p, sizeof(product), 1, fp); printf(" product %d, cat_num=%d, cost=%fn", i,p- >cat_num,p->cost); } getch(); }
  • 22. Jaypee Institute of Information Technology University, Noida Example: Merge two files #include <stdio.h> int main() { FILE *fileA, /* first input file */ *fileB, /* second input file */ *fileC; /* output file to be created */ int num1, /* number to be read from first file */ num2; /* number to be read from second file */ int f1, f2; /* Open files for processing */ fileA = fopen("class1.txt","r"); fileB = fopen("class2.txt","r"); fileC = fopen("class.txt","w");
  • 23. Jaypee Institute of Information Technology University, Noida /* As long as there are numbers in both files, read and compare numbersone by one. Write the smaller number to the output file and read the next number in the file from which the smaller number is read. */ f1 = fscanf(fileA, "%d", &num1); f2 = fscanf(fileB, "%d", &num2); while ((f1!=EOF) && (f2!=EOF)){ if (num1 < num2){ fprintf(fileC,"%dn", num1); f1 = fscanf(fileA, "%d", &num1); } else if (num2 < num1) { fprintf(fileC,"%dn", num2); f2 = fscanf(fileB, "%d", &num2); } else { /* numbs are equal:read from both files */ fprintf(fileC,"%dn", num1); f1 = fscanf(fileA, "%d", &num1); f2 = fscanf(fileB, "%d", &num2); } }
  • 24. Jaypee Institute of Information Technology University, Noida while (f1!=EOF){/* if reached end of second file, read the remaining numbers from first file and write to output file */ fprintf(fileC,"%dn", num1); f1 = fscanf(fileA, "%d", &num1); } while (f2!=EOF){ if reached the end of first file, read the remaining numbers from second file and write to output file */ fprintf(fileC,"%dn", num2); f2 = fscanf(fileB, "%d", &num2); } /* close files */ fclose(fileA); fclose(fileB); fclose(fileC); return 0; } /* end of main */
  • 25. Jaypee Institute of Information Technology University, Noida Exercises 1. Write a C language program to read “mark.dat” file containing rollno, name,marks of three subjects and calculate total mark, result in grade and store same in “result.dat” file. (Note : Make use of fread and fwrite functions) 2. Write a C language program to read a cust.dat file containing meter number, name, current reading & previous reading. Read the same file. Calculate unit and total amounts according to the following rules — Unit rate 0-50 1.00 51-100 1.50 > 100 2.00 Store meter number ,name ,unit & amount in master.dat file.