SlideShare a Scribd company logo
FILE HANDLING IN C
CONSOLE ORIENTED
INPUT/OUTPUT
• Console oriented – use terminal (keyboard/screen)
scanf(“%d”,&i) – read data from keyboard
printf(“%d”,i) – print data to monitor
• Suitable for small volumes of data
• Data lost when program terminated
REAL-LIFE APPLICATIONS
• Large data volumes
• E.g. physical experiments (CERN collider), human
genome, population records etc.
• Need for flexible approach to store/retrieve data
• Concept of files
Files
• File – place on disc where group of related data is stored
• E.g. your C programs, executables
• High-level programming languages support file
operations
• Naming
• Opening
• Reading
• Writing
• Closing
DEFINING AND OPENING FILE
• To store data file in secondary memory (disc) must
specify to OS
• Filename (e.G. Sort.C, input.Data)
• Data structure (e.G. File)
• Purpose (e.G. Reading, writing, appending)
FILENAME
• String of characters that make up a valid filename
for OS.
• May contain two parts
• Primary
• Optional period with extension
• Examples: a.out, prog.c, temp, text.out
GENERAL FORMAT FOR OPENING
FILE
• fp
• contains all information about file
• Communication link between system and program
• Mode can be
• r open file for reading only
• w open file for writing only
• a open file for appending (adding) data
FILE *fp; /*variable fp is pointer to type FILE*/
fp = fopen(“filename”, “mode”);
/*opens file with name filename , assigns identifier to fp */
DIFFERENT MODES
• Writing mode
• if file already exists then contents are deleted,
• else new file with specified name created
• Appending mode
• if file already exists then file opened with contents safe
• else new file created
• Reading mode
• if file already exists then opened with contents safe
• else error occurs.
FILE *p1, *p2;
p1 = fopen(“data”,”r”);
p2= fopen(“results”, w”);
ADDITIONAL MODES
• r+ open to beginning for both reading/writing
• w+ same as w except both for reading and writing
• a+ same as ‘a’ except both for reading and
writing
CLOSING A FILE
• File must be closed as soon as all operations on it
completed.
• Ensures
• All outstanding information associated with file
flushed out from buffers
• All links to file broken
• Accidental misuse of file prevented.
• If want to change mode of file, then first close and
open again.
CLOSING A FILE
• pointer can be reused after closing
Syntax: fclose(file_pointer);
Example:
FILE *p1, *p2;
p1 = fopen(“INPUT.txt”, “r”);
p2 =fopen(“OUTPUT.txt”, “w”);
……..
……..
fclose(p1);
fclose(p2);
INPUT/OUTPUT OPERATIONS ON
FILES
• C provides several different functions for
reading/writing
1. getc() – read a character
2. putc() – write a character
3. fprintf() – write set of data values
4. fscanf() – read set of data values
5. getw() – read integer
6. putw() – write integer
GETC() AND PUTC()
• Handle one character at a time like getchar() and
putchar()
• syntax: putc(c,fp1);
• c : a character variable
• fp1 : pointer to file opened with mode w
• syntax: c = getc(fp2);
• c : a character variable
• fp2 : pointer to file opened with mode r
• file pointer moves by one character position after
every getc() and putc()
• getc() returns end-of-file marker EOF when file end
reached
PROGRAM TO READ/WRITE USING
GETC/PUTC
main()
{ FILE *fp1;
char c;
f1= fopen(“INPUT”, “w”); /* open file for writing */
while((c=getchar()) != EOF) /*get char from keyboard
putc(c,f1); /*write a character to INPUT */
fclose(f1); /* close INPUT */
f1=fopen(“INPUT”, “r”); /* reopen file */
while((c=getc(f1))!=EOF) /*read character from file INPUT*/
printf(“%c”, c); /* print character to screen */
fclose(f1);
} /*end main */
FSCANF() AND FPRINTF()
• Similar to scanf() and printf()
• In addition provide file-pointer
• Given the following
• file-pointer f1 (points to file opened in write mode)
• file-pointer f2 (points to file opened in read mode)
• integer variable i
• float variable f
• Example:
fprintf(f1, “%d %fn”, i, f);
fprintf(stdout, “%f n”, f); /*note: stdout
refers to screen */
fscanf(f2, “%d %f”, &i, &f);
• fscanf returns EOF when end-of-file reached
GETW() AND PUTW()
• Handle one integer at a time
• syntax: putw(i,fp1);
• i : an integer variable
• fp1 : pointer to file ipened with mode w
• syntax: i = getw(fp2);
• i : an integer variable
• fp2 : pointer to file opened with mode r
• File pointer moves by one integer position, data
stored in binary format native to local system
• getw() returns end-of-file marker EOF when file end
reached
C PROGRAM USING GETW,
PUTW,FSCANF, FPRINTF
main()
{ int i,sum1=0;
FILE *f1;
/* open files */
f1 = fopen("int_data.bin","w");
for(i=10;i<15;i++) putw(i,f1);
fclose(f1);
f1 = fopen("int_data.bin","r");
while((i=getw(f1))!=EOF)
{ sum1+=i;
printf("binary file: i=%dn",i);
} /* end while getw */
printf("binary sum=%d,sum1);
fclose(f1);
}
OUTPUT: $ ./a.out
binary file: i=10
binary file: i=11
binary file: i=12
binary file: i=13
binary file: i=14
binary sum=60,
$ cat int_data.txt
10
11
12
13
14
ERRORS THAT OCCUR DURING
I/O
• Typical errors that occur:
1. trying to read beyond end-of-file
2. trying to use a file that has not been opened
3. perform operation on file not permitted by ‘fopen’
mode
4. open file with invalid filename
5. write to write-protected file
ERROR HANDLING
• Given file-pointer, check if EOF reached, errors
while handling file, problems opening file etc.
• Check if EOF reached: feof()
• feof() takes file-pointer as input, returns nonzero if
all data read and zero otherwise
if(feof(fp))
printf(“End of datan”);
• ferror() takes file-pointer as input, returns nonzero
integer if error detected else returns zero
if(ferror(fp) !=0)
printf(“An error has occurredn”);
ERROR WHILE OPENING FILE
• if file cannot be opened then fopen returns a NULL
pointer
• Good practice to check if pointer is NULL before
proceeding
fp = fopen(“input.dat”, “r”);
if (fp == NULL)
printf(“File could not be opened n ”);
RANDOM ACCESS TO FILES
• fseek (file-pointer, offset, position);
• Position: 0 (beginning), 1 (current), 2 (end)
• Offset: number of locations to move from position
Example: fseek(fp,-m, 1); /* move back by m bytes
from current
position */
fseek(fp,m,0); /* move to (m+1)th byte in
file */
fseek(fp, -10, 2); /* what is this? */
• ftell(fp) returns current byte position in file
• rewind(fp) resets position to start of file
COMMAND LINE ARGUMENTS
• main ( int argc, char *argv[] )
• argc – gives a count of number of arguments
(including program name)
• char *argv[] defines an array of pointers to character
(or array of strings)
• argv[0] – program name
• argv[1] to argv[argc -1] give the other arguments as
strings

More Related Content

PPTX
File Handling in C Programming for Beginners
PPT
C-Programming Chapter 5 File-handling-C.ppt
PPT
File handling-dutt
PPT
C-Programming Chapter 5 File-handling-C.ppt
PPTX
File in C language
PPSX
1file handling
PPT
File management and handling by prabhakar
PPT
Files_in_C.ppt
File Handling in C Programming for Beginners
C-Programming Chapter 5 File-handling-C.ppt
File handling-dutt
C-Programming Chapter 5 File-handling-C.ppt
File in C language
1file handling
File management and handling by prabhakar
Files_in_C.ppt

Similar to C-Programming File-handling-C.pptx (20)

PPTX
PPS PPT 2.pptx
PPTX
File handling in c
PPT
PPTX
want to learn files,then just use this ppt to learn
PPT
File Management
PPT
How to do file-handling - in C language
PPTX
Engineering Computers L34-L35-File Handling.pptx
PPTX
Programming C- File Handling , File Operation
PPTX
File management
PPT
Unit5
PPT
file_handling_in_c.ppt
PPT
Lecture 20 - File Handling
PPSX
File mangement
PDF
Files in C
PPTX
MODULE 8-File and preprocessor.pptx for c program learners easy learning
PDF
Advance C Programming UNIT 4-FILE HANDLING IN C.pdf
PDF
EASY UNDERSTANDING OF FILES IN C LANGUAGE.pdf
PPTX
File handling in c
PDF
637225560972186380.pdf
PPS PPT 2.pptx
File handling in c
want to learn files,then just use this ppt to learn
File Management
How to do file-handling - in C language
Engineering Computers L34-L35-File Handling.pptx
Programming C- File Handling , File Operation
File management
Unit5
file_handling_in_c.ppt
Lecture 20 - File Handling
File mangement
Files in C
MODULE 8-File and preprocessor.pptx for c program learners easy learning
Advance C Programming UNIT 4-FILE HANDLING IN C.pdf
EASY UNDERSTANDING OF FILES IN C LANGUAGE.pdf
File handling in c
637225560972186380.pdf
Ad

More from SKUP1 (20)

PPTX
serial_busses_i2c.pptx
PPTX
DESIGN PATTERN.pptx
PPTX
INTER PROCESS COMMUNICATION (IPC).pptx
PPTX
DATA STRUCTURES AND LINKED LISTS IN C.pptx
PPTX
Processes, Threads.pptx
PPTX
C-Programming Control statements.pptx
PPTX
Finite State Machine.ppt.pptx
PPTX
FUNCTIONS IN C.pptx
PPTX
cprogramming strings.pptx
PPTX
UNIONS IN C.pptx
PPTX
OPERATORS IN C.pptx
PPTX
cprogramming Structures.pptx
PPTX
C-Programming Function pointers.pptx
PPTX
POINTERS.pptx
PPTX
STACKS AND QUEUES.pptx
PPTX
C-Programming C LIBRARIES AND USER DEFINED LIBRARIES.pptx
PPTX
C MEMORY MODEL​.pptx
PPTX
DATATYPES,KEYWORDS,FORMATSPECS[1].pptx
PPTX
DYNAMIC MEMORY ALLOCATION.pptx
PPTX
COMPILATION PROCESS IN C.pptx
serial_busses_i2c.pptx
DESIGN PATTERN.pptx
INTER PROCESS COMMUNICATION (IPC).pptx
DATA STRUCTURES AND LINKED LISTS IN C.pptx
Processes, Threads.pptx
C-Programming Control statements.pptx
Finite State Machine.ppt.pptx
FUNCTIONS IN C.pptx
cprogramming strings.pptx
UNIONS IN C.pptx
OPERATORS IN C.pptx
cprogramming Structures.pptx
C-Programming Function pointers.pptx
POINTERS.pptx
STACKS AND QUEUES.pptx
C-Programming C LIBRARIES AND USER DEFINED LIBRARIES.pptx
C MEMORY MODEL​.pptx
DATATYPES,KEYWORDS,FORMATSPECS[1].pptx
DYNAMIC MEMORY ALLOCATION.pptx
COMPILATION PROCESS IN C.pptx
Ad

Recently uploaded (20)

PPTX
Internship_Presentation_Final engineering.pptx
PPTX
web development for engineering and engineering
PPTX
Unit 5 BSP.pptxytrrftyyydfyujfttyczcgvcd
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PPTX
AgentX UiPath Community Webinar series - Delhi
PDF
algorithms-16-00088-v2hghjjnjnhhhnnjhj.pdf
PPT
Project quality management in manufacturing
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PDF
composite construction of structures.pdf
PDF
Geotechnical Engineering, Soil mechanics- Soil Testing.pdf
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PPTX
anatomy of limbus and anterior chamber .pptx
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PDF
Arduino robotics embedded978-1-4302-3184-4.pdf
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
MET 305 MODULE 1 KTU 2019 SCHEME 25.pptx
PDF
Structs to JSON How Go Powers REST APIs.pdf
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
Practice Questions on recent development part 1.pptx
Internship_Presentation_Final engineering.pptx
web development for engineering and engineering
Unit 5 BSP.pptxytrrftyyydfyujfttyczcgvcd
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
AgentX UiPath Community Webinar series - Delhi
algorithms-16-00088-v2hghjjnjnhhhnnjhj.pdf
Project quality management in manufacturing
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
composite construction of structures.pdf
Geotechnical Engineering, Soil mechanics- Soil Testing.pdf
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
anatomy of limbus and anterior chamber .pptx
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
Arduino robotics embedded978-1-4302-3184-4.pdf
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
MET 305 MODULE 1 KTU 2019 SCHEME 25.pptx
Structs to JSON How Go Powers REST APIs.pdf
Embodied AI: Ushering in the Next Era of Intelligent Systems
Practice Questions on recent development part 1.pptx

C-Programming File-handling-C.pptx

  • 2. CONSOLE ORIENTED INPUT/OUTPUT • Console oriented – use terminal (keyboard/screen) scanf(“%d”,&i) – read data from keyboard printf(“%d”,i) – print data to monitor • Suitable for small volumes of data • Data lost when program terminated
  • 3. REAL-LIFE APPLICATIONS • Large data volumes • E.g. physical experiments (CERN collider), human genome, population records etc. • Need for flexible approach to store/retrieve data • Concept of files
  • 4. Files • File – place on disc where group of related data is stored • E.g. your C programs, executables • High-level programming languages support file operations • Naming • Opening • Reading • Writing • Closing
  • 5. DEFINING AND OPENING FILE • To store data file in secondary memory (disc) must specify to OS • Filename (e.G. Sort.C, input.Data) • Data structure (e.G. File) • Purpose (e.G. Reading, writing, appending)
  • 6. FILENAME • String of characters that make up a valid filename for OS. • May contain two parts • Primary • Optional period with extension • Examples: a.out, prog.c, temp, text.out
  • 7. GENERAL FORMAT FOR OPENING FILE • fp • contains all information about file • Communication link between system and program • Mode can be • r open file for reading only • w open file for writing only • a open file for appending (adding) data FILE *fp; /*variable fp is pointer to type FILE*/ fp = fopen(“filename”, “mode”); /*opens file with name filename , assigns identifier to fp */
  • 8. DIFFERENT MODES • Writing mode • if file already exists then contents are deleted, • else new file with specified name created • Appending mode • if file already exists then file opened with contents safe • else new file created • Reading mode • if file already exists then opened with contents safe • else error occurs. FILE *p1, *p2; p1 = fopen(“data”,”r”); p2= fopen(“results”, w”);
  • 9. ADDITIONAL MODES • r+ open to beginning for both reading/writing • w+ same as w except both for reading and writing • a+ same as ‘a’ except both for reading and writing
  • 10. CLOSING A FILE • File must be closed as soon as all operations on it completed. • Ensures • All outstanding information associated with file flushed out from buffers • All links to file broken • Accidental misuse of file prevented. • If want to change mode of file, then first close and open again.
  • 11. CLOSING A FILE • pointer can be reused after closing Syntax: fclose(file_pointer); Example: FILE *p1, *p2; p1 = fopen(“INPUT.txt”, “r”); p2 =fopen(“OUTPUT.txt”, “w”); …….. …….. fclose(p1); fclose(p2);
  • 12. INPUT/OUTPUT OPERATIONS ON FILES • C provides several different functions for reading/writing 1. getc() – read a character 2. putc() – write a character 3. fprintf() – write set of data values 4. fscanf() – read set of data values 5. getw() – read integer 6. putw() – write integer
  • 13. GETC() AND PUTC() • Handle one character at a time like getchar() and putchar() • syntax: putc(c,fp1); • c : a character variable • fp1 : pointer to file opened with mode w • syntax: c = getc(fp2); • c : a character variable • fp2 : pointer to file opened with mode r • file pointer moves by one character position after every getc() and putc() • getc() returns end-of-file marker EOF when file end reached
  • 14. PROGRAM TO READ/WRITE USING GETC/PUTC main() { FILE *fp1; char c; f1= fopen(“INPUT”, “w”); /* open file for writing */ while((c=getchar()) != EOF) /*get char from keyboard putc(c,f1); /*write a character to INPUT */ fclose(f1); /* close INPUT */ f1=fopen(“INPUT”, “r”); /* reopen file */ while((c=getc(f1))!=EOF) /*read character from file INPUT*/ printf(“%c”, c); /* print character to screen */ fclose(f1); } /*end main */
  • 15. FSCANF() AND FPRINTF() • Similar to scanf() and printf() • In addition provide file-pointer • Given the following • file-pointer f1 (points to file opened in write mode) • file-pointer f2 (points to file opened in read mode) • integer variable i • float variable f • Example: fprintf(f1, “%d %fn”, i, f); fprintf(stdout, “%f n”, f); /*note: stdout refers to screen */ fscanf(f2, “%d %f”, &i, &f); • fscanf returns EOF when end-of-file reached
  • 16. GETW() AND PUTW() • Handle one integer at a time • syntax: putw(i,fp1); • i : an integer variable • fp1 : pointer to file ipened with mode w • syntax: i = getw(fp2); • i : an integer variable • fp2 : pointer to file opened with mode r • File pointer moves by one integer position, data stored in binary format native to local system • getw() returns end-of-file marker EOF when file end reached
  • 17. C PROGRAM USING GETW, PUTW,FSCANF, FPRINTF main() { int i,sum1=0; FILE *f1; /* open files */ f1 = fopen("int_data.bin","w"); for(i=10;i<15;i++) putw(i,f1); fclose(f1); f1 = fopen("int_data.bin","r"); while((i=getw(f1))!=EOF) { sum1+=i; printf("binary file: i=%dn",i); } /* end while getw */ printf("binary sum=%d,sum1); fclose(f1); }
  • 18. OUTPUT: $ ./a.out binary file: i=10 binary file: i=11 binary file: i=12 binary file: i=13 binary file: i=14 binary sum=60, $ cat int_data.txt 10 11 12 13 14
  • 19. ERRORS THAT OCCUR DURING I/O • Typical errors that occur: 1. trying to read beyond end-of-file 2. trying to use a file that has not been opened 3. perform operation on file not permitted by ‘fopen’ mode 4. open file with invalid filename 5. write to write-protected file
  • 20. ERROR HANDLING • Given file-pointer, check if EOF reached, errors while handling file, problems opening file etc. • Check if EOF reached: feof() • feof() takes file-pointer as input, returns nonzero if all data read and zero otherwise if(feof(fp)) printf(“End of datan”); • ferror() takes file-pointer as input, returns nonzero integer if error detected else returns zero if(ferror(fp) !=0) printf(“An error has occurredn”);
  • 21. ERROR WHILE OPENING FILE • if file cannot be opened then fopen returns a NULL pointer • Good practice to check if pointer is NULL before proceeding fp = fopen(“input.dat”, “r”); if (fp == NULL) printf(“File could not be opened n ”);
  • 22. RANDOM ACCESS TO FILES • fseek (file-pointer, offset, position); • Position: 0 (beginning), 1 (current), 2 (end) • Offset: number of locations to move from position Example: fseek(fp,-m, 1); /* move back by m bytes from current position */ fseek(fp,m,0); /* move to (m+1)th byte in file */ fseek(fp, -10, 2); /* what is this? */ • ftell(fp) returns current byte position in file • rewind(fp) resets position to start of file
  • 23. COMMAND LINE ARGUMENTS • main ( int argc, char *argv[] ) • argc – gives a count of number of arguments (including program name) • char *argv[] defines an array of pointers to character (or array of strings) • argv[0] – program name • argv[1] to argv[argc -1] give the other arguments as strings