Your SlideShare is downloading. ×
Module 03 File Handling in C
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Module 03 File Handling in C

1,779
views

Published on

The presentation given at PCCOE, Nigdi, Pune by Prof. Tushar B Kute in workshop on "See through C". …

The presentation given at PCCOE, Nigdi, Pune by Prof. Tushar B Kute in workshop on "See through C".
http://tusharkute.com

Published in: Software

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,779
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. See through C Module 3 File Handling Tushar B Kute http://tusharkute.com
  • 2. What is a File?What is a File? ● AA filefile is a collection of related data that ais a collection of related data that a computers treats as a single unit.computers treats as a single unit. ● Computers store files to secondary storage soComputers store files to secondary storage so that the contents of files remain intact when athat the contents of files remain intact when a computer shuts down.computer shuts down. ● When a computer reads a file, it copies the fileWhen a computer reads a file, it copies the file from the storage device to memory; when itfrom the storage device to memory; when it writes to a file, it transfers data from memory towrites to a file, it transfers data from memory to the storage device.the storage device. ● C uses a structure calledC uses a structure called FILEFILE (defined in(defined in stdio.hstdio.h) to store the attributes of a file.) to store the attributes of a file.
  • 3. Steps in Processing a FileSteps in Processing a File 1.1. Create the stream via a pointer variable using theCreate the stream via a pointer variable using the FILEFILE structure:structure: FILE *p;FILE *p; 2.2. Open the file, associating the stream name with the fileOpen the file, associating the stream name with the file name.name. 3.3. Read or write the data.Read or write the data. 4.4. Close the file.Close the file.
  • 4. The basic file operations areThe basic file operations are ● fopen - open a file- specify how its openedfopen - open a file- specify how its opened (read/write) and type (binary/text)(read/write) and type (binary/text) ● fclose - close an opened filefclose - close an opened file ● fread - read from a filefread - read from a file ● fwrite - write to a filefwrite - write to a file ● fseek/fsetpos - move a file pointer tofseek/fsetpos - move a file pointer to somewhere in a file.somewhere in a file. ● ftell/fgetpos - tell you where the file pointer isftell/fgetpos - tell you where the file pointer is located.located.
  • 5. File Open ModesFile Open Modes
  • 6. More on File Open ModesMore on File Open Modes
  • 7. Additionally,Additionally, ● r+ - open for reading and writing, start at beginningr+ - open for reading and writing, start at beginning ● w+ - open for reading and writing (overwrite file)w+ - open for reading and writing (overwrite file) ● a+ - open for reading and writing (append if file exists)a+ - open for reading and writing (append if file exists)
  • 8. File OpenFile Open ● The file open function (The file open function (fopenfopen) serves two purposes:) serves two purposes: – It makes the connection between the physical file andIt makes the connection between the physical file and the stream.the stream. – It creates “a program file structure to store theIt creates “a program file structure to store the information” C needs to process the file.information” C needs to process the file. ● Syntax:Syntax: filepointer=filepointer=fopen(“filename”, “mode”);fopen(“filename”, “mode”);
  • 9. More OnMore On fopenfopen ● The file mode tells C how the program willThe file mode tells C how the program will use the file.use the file. ● The filename indicates the system nameThe filename indicates the system name and location for the file.and location for the file. ● We assign the return value ofWe assign the return value of fopenfopen to ourto our pointer variable:pointer variable: spData = fopen(“MYFILE.TXT”, “w”);spData = fopen(“MYFILE.TXT”, “w”); spData = fopen(“A:MYFILE.TXT”, “w”);spData = fopen(“A:MYFILE.TXT”, “w”);
  • 10. More OnMore On fopenfopen
  • 11. Closing a FileClosing a File ● When we finish with a mode, we need to close the fileWhen we finish with a mode, we need to close the file before ending the program or beginning another modebefore ending the program or beginning another mode with that same file.with that same file. ● To close a file, we useTo close a file, we use fclosefclose and the pointer variable:and the pointer variable: fclose(spData);fclose(spData);
  • 12. fprintf()fprintf() Syntax:Syntax: fprintf (fp,"string",variables);fprintf (fp,"string",variables); Example:Example: int i = 12;int i = 12; float x = 2.356;float x = 2.356; char ch = 's';char ch = 's'; FILE *fp;FILE *fp; fp=fopen(“out.txt”,”w”);fp=fopen(“out.txt”,”w”); fprintf (fp, "%d %f %c", i, x,fprintf (fp, "%d %f %c", i, x, ch);ch);
  • 13. fscanf()fscanf() Syntax:Syntax: fscanf (fp,"string",identifiers);fscanf (fp,"string",identifiers); Example:Example: FILE *fp;FILE *fp; fp=fopen(“input.txt”,”r”);fp=fopen(“input.txt”,”r”); int i;int i; fscanf (fp,“%d",&i);fscanf (fp,“%d",&i);
  • 14. fgetc()fgetc() Syntax:Syntax: identifier = fgetc (file pointer);identifier = fgetc (file pointer); Example:Example: FILE *fp;FILE *fp; fp=fopen(“input.txt”,”r”);fp=fopen(“input.txt”,”r”); char ch;char ch; ch = fgetc (fp);ch = fgetc (fp);
  • 15. fputc()fputc() write a single character to the output file, pointed to by fp.write a single character to the output file, pointed to by fp. Example:Example: FILE *fp;FILE *fp; char ch;char ch; fputc (ch,fp);fputc (ch,fp);
  • 16. End of FileEnd of File ● There are a number of ways to test for the end-of-fileThere are a number of ways to test for the end-of-file condition. Another way is to use the value returned bycondition. Another way is to use the value returned by thethe fscanffscanf function:function: FILE *fptr1;FILE *fptr1; int istatus ;int istatus ; istatus = fscanf (fptr1, "%d", &var) ;istatus = fscanf (fptr1, "%d", &var) ; if ( istatus == feof(fptr1) )if ( istatus == feof(fptr1) ) {{ printf ("End-of-file encountered.n”) ;printf ("End-of-file encountered.n”) ; }}
  • 17. Reading and Writing FilesReading and Writing Files #include <stdio.h>#include <stdio.h> int main ( )int main ( ) {{ FILE *outfile, *infile ;FILE *outfile, *infile ; int b = 5, f ;int b = 5, f ; float a = 13.72, c = 6.68, e, g ;float a = 13.72, c = 6.68, e, g ; outfile = fopen ("testdata", "w") ;outfile = fopen ("testdata", "w") ; fprintf (outfile, “ %f %d %f ", a, b, c) ;fprintf (outfile, “ %f %d %f ", a, b, c) ; fclose (outfile) ;fclose (outfile) ; infile = fopen ("testdata", "r") ;infile = fopen ("testdata", "r") ; fscanf (infile,"%f %d %f", &e, &f, &g) ;fscanf (infile,"%f %d %f", &e, &f, &g) ; printf (“ %f %d %f n ", a, b, c) ;printf (“ %f %d %f n ", a, b, c) ; printf (“ %f %d %f n ", e, f, g) ;printf (“ %f %d %f n ", e, f, g) ; }}
  • 18. ExampleExample #include <stdio.h>#include <stdio.h> #include<conio.h>#include<conio.h> int main()int main() {{ char ch;char ch; FILE *fp;FILE *fp; fp=fopen("out.txt","r");fp=fopen("out.txt","r"); while(!feof(fp))while(!feof(fp)) {{ ch=getc(fp);ch=getc(fp); printf("n%c",ch);printf("n%c",ch); }} fcloseall( );fcloseall( ); }}
  • 19. freadfread ()() Declaration:Declaration: size_t fread(void *ptr, size_t size, size_t n, FILE *stream);size_t fread(void *ptr, size_t size, size_t n, FILE *stream); Remarks:Remarks: fread reads a specified number of equal-sizedfread reads a specified number of equal-sized data items from an input stream into a block.data items from an input stream into a block. ptr = Points to a block into which data is readptr = Points to a block into which data is read size = Length of each item read, in bytessize = Length of each item read, in bytes n = Number of items readn = Number of items read stream = file pointerstream = file pointer
  • 20. ExampleExample Example:Example: #include <stdio.h>#include <stdio.h> int main()int main() {{ FILE *f;FILE *f; char buffer[11];char buffer[11]; if (f = fopen("fred.txt", “r”))if (f = fopen("fred.txt", “r”)) {{ fread(buffer, 1, 10, f);fread(buffer, 1, 10, f); buffer[10] = 0;buffer[10] = 0; fclose(f);fclose(f); printf("first 10 characters of the file:n%sn", buffer);printf("first 10 characters of the file:n%sn", buffer); }} return 0;return 0; }}
  • 21. fwrite()fwrite() Declaration:Declaration: size_t fwrite(const void *ptr, size_t size, size_t n, FILE*stream);size_t fwrite(const void *ptr, size_t size, size_t n, FILE*stream); Remarks:Remarks: fwrite appends a specified number of equal-sized data items to anfwrite appends a specified number of equal-sized data items to an output file.output file. ptr = Pointer to any object; the data written begins at ptrptr = Pointer to any object; the data written begins at ptr size = Length of each item of datasize = Length of each item of data n =Number of data items to be appendedn =Number of data items to be appended stream = file pointerstream = file pointer
  • 22. ExampleExample Example:Example: #include <stdio.h>#include <stdio.h> int main()int main() {{ char a[10]={'1','2','3','4','5','6','7','8','9','a'};char a[10]={'1','2','3','4','5','6','7','8','9','a'}; FILE *fs;FILE *fs; fs=fopen("Project.txt","w");fs=fopen("Project.txt","w"); fwrite(a,1,10,fs);fwrite(a,1,10,fs); fclose(fs);fclose(fs); return 0;return 0; }}
  • 23. fseek()fseek() This function sets the file position indicator for the stream pointed to by streamThis function sets the file position indicator for the stream pointed to by stream or you can say it seeks a specified place within a file and modify it.or you can say it seeks a specified place within a file and modify it. SEEK_SETSEEK_SET Seeks from beginning of fileSeeks from beginning of file SEEK_CURSEEK_CUR Seeks from current positionSeeks from current position SEEK_ENDSEEK_END Seeks from end of fileSeeks from end of file Example:Example: #include#include <stdio.h><stdio.h> intint mainmain()() {{ FILE * f;FILE * f; f = fopen("myfile.txt", "w");f = fopen("myfile.txt", "w"); fputs("Hello World", f);fputs("Hello World", f); fseek(f, 6, SEEK_SET); SEEK_CUR, SEEK_ENDfseek(f, 6, SEEK_SET); SEEK_CUR, SEEK_END fputs(" India", f);fputs(" India", f); fclose(f);fclose(f); returnreturn 0;0; }}
  • 24. ftell()ftell() offset = ftell( file pointer );offset = ftell( file pointer ); "ftell" returns the current position for input or output on the file"ftell" returns the current position for input or output on the file #include <stdio.h>#include <stdio.h> int main(void)int main(void) {{ FILE *stream;FILE *stream; stream = fopen("MYFILE.TXT", "w");stream = fopen("MYFILE.TXT", "w"); fprintf(stream, "This is a test");fprintf(stream, "This is a test"); printf("The file pointer is at byte %ldn", ftell(stream));printf("The file pointer is at byte %ldn", ftell(stream)); fclose(stream);fclose(stream); return 0;return 0; }}
  • 25. Thank you This presentation is created using LibreOffice Impress 3.6.2.2