SlideShare a Scribd company logo
1
This session Outline
Files Concepts
File Programs
Busy Bee Workshop – Session IXBusy Bee Workshop – Session IX
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
Busy Bee Workshop – FileBusy Bee Workshop – File
Real-life applications
ļ‚—Large data volumes
ļ‚—Need for flexible approach to store/retrieve data
ļ‚—Concept of files
Busy Bee Workshop – FileBusy Bee Workshop – File
Files
ļ‚—File – place on disk 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
Busy Bee Workshop – FileBusy Bee Workshop – File
Defining and opening file
ļ‚—To store data file in secondary memory (disk) must
specify to OS
ļ‚—Filename (e.g. sort.c, input.data)
ļ‚—Data structure (e.g. FILE)
ļ‚—Purpose (e.g. reading, writing, appending)
Busy Bee Workshop – FileBusy Bee Workshop – File
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
Busy Bee Workshop – FileBusy Bee Workshop – File
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 */
Busy Bee Workshop – FileBusy Bee Workshop – File
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ā€);
Busy Bee Workshop – FileBusy Bee Workshop – File
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
Busy Bee Workshop – FileBusy Bee Workshop – File
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
Busy Bee Workshop – FileBusy Bee Workshop – File
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);
Busy Bee Workshop – FileBusy Bee Workshop – File
Input/Output operations on filesļ‚—C provides several different functions for reading/writing
ļ‚—getc() – read a character
ļ‚—putc() – write a character
ļ‚—fprintf() – write set of data values
ļ‚—fscanf() – read set of data values
ļ‚—getw() – read integer
ļ‚—putw() – write integer
ļ‚—read() – read data from binary file
ļ‚—write() – write data into binary file
Busy Bee Workshop – FileBusy Bee Workshop – File
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
Busy Bee Workshop – FileBusy Bee Workshop – File
Program to read/write using getc/putc
#include <stdio.h>
main()
{ FILE *fp1;
char c;
f1= fopen(ā€œINPUTā€, ā€œwā€); /* open file for writing */
while((c=getchar()) != EOF) /*get char from keyboard until CTL-Z*/
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 */
Busy Bee Workshop – FileBusy Bee Workshop – File
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
Busy Bee Workshop – FileBusy Bee Workshop – File
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
Busy Bee Workshop – FileBusy Bee Workshop – File
C program using getw, putw,fscanf, fprintf
#include <stdio.h>
main()
{ int i,sum1=0;
FILE *f1;
/* open files */
f1 = fopen("int_data.bin","w");
/* write integers to files in binary
and text format*/
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);
}
#include <stdio.h>
main()
{ int i, sum2=0;
FILE *f2;
/* open files */
f2 = fopen("int_data.txt","w");
/* write integers to files in binary
and text format*/
for(i=10;i<15;i++) printf(f2,"%dn",i);
fclose(f2);
f2 = fopen("int_data.txt","r");
while(fscanf(f2,"%d",&i)!=EOF)
{ sum2+=i; printf("text file: i=
%dn",i);
} /*end while fscanf*/
printf("text sum=%dn",sum2);
fclose(f2);
}
Busy Bee Workshop – FileBusy Bee Workshop – File
On execution of previous Programs
binary file: i=10
binary file: i=11
binary file: i=12
binary file: i=13
binary file: i=14
binary sum=60,
text file: i=10
text file: i=11
text file: i=12
text file: i=13
text file: i=14
text sum=60
Busy Bee Workshop – FileBusy Bee Workshop – File
Errors that occur during I/O
ļ‚—Typical errors that occur
ļ‚—trying to read beyond end-of-file
ļ‚—trying to use a file that has not been opened
ļ‚—perform operation on file not permitted by ā€˜fopen’ mode
ļ‚—open file with invalid filename
ļ‚—write to write-protected file
Busy Bee Workshop – FileBusy Bee Workshop – 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ā€);
Busy Bee Workshop – FileBusy Bee Workshop – File
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 ā€);
Busy Bee Workshop – FileBusy Bee Workshop – File
Random access to files
ļ‚—how to jump to a given position (byte number) in a file
without reading all the previous data?
ļ‚—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
Busy Bee Workshop – FileBusy Bee Workshop – File
Command line arguments
ļ‚—can give input to C program from command line
E.g. > prog.c 10 name1 name2
….
ļ‚—how to use these 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
Busy Bee Workshop – FileBusy Bee Workshop – File
Example args.c
args.out 2 join leave 6
6
leave
join
2
args.out
#include <stdio.h>
main(int argc,char *argv[])
{
while(argc>0) /* print out all arguments in reverse order*/
{
printf("%sn",argv[argc-1]);
argc--;
}
}
Busy Bee Workshop – FileBusy Bee Workshop – File
File handling-c programming language
File handling-c programming language
Ad

Recommended

PPT
File handling in c
thirumalaikumar3
Ā 
DOCX
Understanding c file handling functions with examples
Muhammed Thanveer M
Ā 
PPT
File in c
Prabhu Govind
Ā 
PPTX
File handling in c
aakanksha s
Ā 
PPTX
File handling in C
Kamal Acharya
Ā 
PPTX
File in C language
Manash Kumar Mondal
Ā 
PPTX
C Programming Unit-5
Vikram Nandini
Ā 
PPT
File handling in c
David Livingston J
Ā 
PPTX
File handling in c
mohit biswal
Ā 
PPTX
File handling in C by Faixan
Ł–FaiXy :)
Ā 
PDF
Module 03 File Handling in C
Tushar B Kute
Ā 
PPT
File handling-c
CGC Technical campus,Mohali
Ā 
PPTX
File Management in C
Paurav Shah
Ā 
PPT
File in C Programming
Sonya Akter Rupa
Ā 
PPT
File handling in c
Vikash Dhal
Ā 
PPT
File handling in 'C'
Gaurav Garg
Ā 
PPTX
UNIT 10. Files and file handling in C
Ashim Lamichhane
Ā 
PPT
File Management
Ravinder Kamboj
Ā 
PPTX
File Handling and Command Line Arguments in C
Mahendra Yadav
Ā 
PDF
Files in C
Prabu U
Ā 
PPSX
C programming file handling
argusacademy
Ā 
PPT
file
teach4uin
Ā 
PPTX
File handling in C
Rabin BK
Ā 
PDF
File_Management_in_C
NabeelaNousheen
Ā 
PPTX
file management in c language
chintan makwana
Ā 
PPTX
File Management in C
Munazza-Mah-Jabeen
Ā 
PDF
CWendland NCUR Research Paper Submission
Christian Wendland, MHA
Ā 
DOCX
ICI final
Lam Yu
Ā 

More Related Content

What's hot (20)

PPT
File handling in c
David Livingston J
Ā 
PPTX
File handling in c
mohit biswal
Ā 
PPTX
File handling in C by Faixan
Ł–FaiXy :)
Ā 
PDF
Module 03 File Handling in C
Tushar B Kute
Ā 
PPT
File handling-c
CGC Technical campus,Mohali
Ā 
PPTX
File Management in C
Paurav Shah
Ā 
PPT
File in C Programming
Sonya Akter Rupa
Ā 
PPT
File handling in c
Vikash Dhal
Ā 
PPT
File handling in 'C'
Gaurav Garg
Ā 
PPTX
UNIT 10. Files and file handling in C
Ashim Lamichhane
Ā 
PPT
File Management
Ravinder Kamboj
Ā 
PPTX
File Handling and Command Line Arguments in C
Mahendra Yadav
Ā 
PDF
Files in C
Prabu U
Ā 
PPSX
C programming file handling
argusacademy
Ā 
PPT
file
teach4uin
Ā 
PPTX
File handling in C
Rabin BK
Ā 
PDF
File_Management_in_C
NabeelaNousheen
Ā 
PPTX
file management in c language
chintan makwana
Ā 
PPTX
File Management in C
Munazza-Mah-Jabeen
Ā 
File handling in c
David Livingston J
Ā 
File handling in c
mohit biswal
Ā 
File handling in C by Faixan
Ł–FaiXy :)
Ā 
Module 03 File Handling in C
Tushar B Kute
Ā 
File handling-c
CGC Technical campus,Mohali
Ā 
File Management in C
Paurav Shah
Ā 
File in C Programming
Sonya Akter Rupa
Ā 
File handling in c
Vikash Dhal
Ā 
File handling in 'C'
Gaurav Garg
Ā 
UNIT 10. Files and file handling in C
Ashim Lamichhane
Ā 
File Management
Ravinder Kamboj
Ā 
File Handling and Command Line Arguments in C
Mahendra Yadav
Ā 
Files in C
Prabu U
Ā 
C programming file handling
argusacademy
Ā 
file
teach4uin
Ā 
File handling in C
Rabin BK
Ā 
File_Management_in_C
NabeelaNousheen
Ā 
file management in c language
chintan makwana
Ā 
File Management in C
Munazza-Mah-Jabeen
Ā 

Viewers also liked (20)

PDF
CWendland NCUR Research Paper Submission
Christian Wendland, MHA
Ā 
DOCX
ICI final
Lam Yu
Ā 
DOCX
Course outline august 2015 (1)
Lam Yu
Ā 
PDF
Project 2
Lam Yu
Ā 
PDF
CV Wageh Khedr - pdf.
wagieh kheder
Ā 
DOC
Essay question august2015 (1)
Lam Yu
Ā 
PDF
Master thesis Lies Polet
Lies Polet
Ā 
PPT
Data type2 c
thirumalaikumar3
Ā 
PPT
Epc123 (1)
Lam Yu
Ā 
PDF
Cts module outline handout 11082015_v01
Lam Yu
Ā 
PDF
32 docynormas normasapa
Angie Martinez Benavides
Ā 
PPTX
Olmedo, rodrigo. Liderazgo
Rodrigo Olmedo
Ā 
PPTX
Tutorial 4(a) (2)
Lam Yu
Ā 
PPTX
Johns Hopkins 2016 MHA Case Competition
Christian Wendland, MHA
Ā 
PPT
Ilmu Pengetahuan
rennijuliyanna
Ā 
PDF
Drawing project 1 july 2015_integration (1)
Lam Yu
Ā 
DOCX
Introduction
Lam Yu
Ā 
PDF
Drawing final project studio unit living_july 2015
Lam Yu
Ā 
PPTX
Tutorial 4(b)
Lam Yu
Ā 
PPTX
Pola dan barisan bilangan
rennijuliyanna
Ā 
CWendland NCUR Research Paper Submission
Christian Wendland, MHA
Ā 
ICI final
Lam Yu
Ā 
Course outline august 2015 (1)
Lam Yu
Ā 
Project 2
Lam Yu
Ā 
CV Wageh Khedr - pdf.
wagieh kheder
Ā 
Essay question august2015 (1)
Lam Yu
Ā 
Master thesis Lies Polet
Lies Polet
Ā 
Data type2 c
thirumalaikumar3
Ā 
Epc123 (1)
Lam Yu
Ā 
Cts module outline handout 11082015_v01
Lam Yu
Ā 
32 docynormas normasapa
Angie Martinez Benavides
Ā 
Olmedo, rodrigo. Liderazgo
Rodrigo Olmedo
Ā 
Tutorial 4(a) (2)
Lam Yu
Ā 
Johns Hopkins 2016 MHA Case Competition
Christian Wendland, MHA
Ā 
Ilmu Pengetahuan
rennijuliyanna
Ā 
Drawing project 1 july 2015_integration (1)
Lam Yu
Ā 
Introduction
Lam Yu
Ā 
Drawing final project studio unit living_july 2015
Lam Yu
Ā 
Tutorial 4(b)
Lam Yu
Ā 
Pola dan barisan bilangan
rennijuliyanna
Ā 
Ad

Similar to File handling-c programming language (20)

PPT
File handling-dutt
Anil Dutt
Ā 
PPT
C-Programming Chapter 5 File-handling-C.ppt
sahakrishnan
Ā 
PPT
Files_in_C.ppt
kasthurimukila
Ā 
PPTX
File Handling in C Programming for Beginners
VSKAMCSPSGCT
Ā 
PPT
C-Programming Chapter 5 File-handling-C.ppt
ssuserad38541
Ā 
PPTX
PPS PPT 2.pptx
Sandeepbhuma1
Ā 
PPSX
1file handling
Frijo Francis
Ā 
PPTX
C-Programming File-handling-C.pptx
SKUP1
Ā 
PPTX
C-Programming File-handling-C.pptx
LECO9
Ā 
PPTX
File management
lalithambiga kamaraj
Ā 
PPT
How to do file-handling - in C language
SwatiAtulJoshi
Ā 
PPT
file_handling_in_c.ppt
yuvrajkeshri
Ā 
PPTX
Engineering Computers L34-L35-File Handling.pptx
happycocoman
Ā 
PPTX
Programming C- File Handling , File Operation
svkarthik86
Ā 
PPT
Unit5
mrecedu
Ā 
PPTX
Concept of file handling in c
MugdhaSharma11
Ā 
PPT
File management and handling by prabhakar
PrabhakarPremUpreti
Ā 
PDF
637225560972186380.pdf
SureshKalirawna
Ā 
PPT
Lecture 20 - File Handling
Md. Imran Hossain Showrov
Ā 
PPTX
want to learn files,then just use this ppt to learn
nalluribalaji157
Ā 
File handling-dutt
Anil Dutt
Ā 
C-Programming Chapter 5 File-handling-C.ppt
sahakrishnan
Ā 
Files_in_C.ppt
kasthurimukila
Ā 
File Handling in C Programming for Beginners
VSKAMCSPSGCT
Ā 
C-Programming Chapter 5 File-handling-C.ppt
ssuserad38541
Ā 
PPS PPT 2.pptx
Sandeepbhuma1
Ā 
1file handling
Frijo Francis
Ā 
C-Programming File-handling-C.pptx
SKUP1
Ā 
C-Programming File-handling-C.pptx
LECO9
Ā 
File management
lalithambiga kamaraj
Ā 
How to do file-handling - in C language
SwatiAtulJoshi
Ā 
file_handling_in_c.ppt
yuvrajkeshri
Ā 
Engineering Computers L34-L35-File Handling.pptx
happycocoman
Ā 
Programming C- File Handling , File Operation
svkarthik86
Ā 
Unit5
mrecedu
Ā 
Concept of file handling in c
MugdhaSharma11
Ā 
File management and handling by prabhakar
PrabhakarPremUpreti
Ā 
637225560972186380.pdf
SureshKalirawna
Ā 
Lecture 20 - File Handling
Md. Imran Hossain Showrov
Ā 
want to learn files,then just use this ppt to learn
nalluribalaji157
Ā 
Ad

More from thirumalaikumar3 (7)

PPT
Data type in c
thirumalaikumar3
Ā 
PPT
Control flow in c
thirumalaikumar3
Ā 
PPTX
C function
thirumalaikumar3
Ā 
PDF
Coper in C
thirumalaikumar3
Ā 
PPTX
C basics
thirumalaikumar3
Ā 
PPT
Structure c
thirumalaikumar3
Ā 
PPT
String c
thirumalaikumar3
Ā 
Data type in c
thirumalaikumar3
Ā 
Control flow in c
thirumalaikumar3
Ā 
C function
thirumalaikumar3
Ā 
Coper in C
thirumalaikumar3
Ā 
C basics
thirumalaikumar3
Ā 
Structure c
thirumalaikumar3
Ā 
String c
thirumalaikumar3
Ā 

Recently uploaded (20)

PPTX
How to Add New Item in CogMenu in Odoo 18
Celine George
Ā 
PPTX
Tanja Vujicic - PISA for Schools contact Info
EduSkills OECD
Ā 
PPTX
ENGLISH-5 Q1 Lesson 1.pptx - Story Elements
Mayvel Nadal
Ā 
PDF
Gladiolous Cultivation practices by AKL.pdf
kushallamichhame
Ā 
PPTX
Peer Teaching Observations During School Internship
AjayaMohanty7
Ā 
PPTX
SCHIZOPHRENIA OTHER PSYCHOTIC DISORDER LIKE Persistent delusion/Capgras syndr...
parmarjuli1412
Ā 
PDF
Hurricane Helene Application Documents Checklists
Mebane Rash
Ā 
PDF
K12 Tableau User Group virtual event June 18, 2025
dogden2
Ā 
PPTX
How to use search fetch method in Odoo 18
Celine George
Ā 
PDF
THE PSYCHOANALYTIC OF THE BLACK CAT BY EDGAR ALLAN POE (1).pdf
nabilahk908
Ā 
PDF
University of Ghana Cracks Down on Misconduct: Over 100 Students Sanctioned
Kweku Zurek
Ā 
PDF
LDMMIA Shop & Student News Summer Solstice 25
LDM & Mia eStudios
Ā 
PPTX
IIT KGP Quiz Week 2024 Sports Quiz (Prelims + Finals)
IIT Kharagpur Quiz Club
Ā 
PPTX
June 2025 Progress Update With Board Call_In process.pptx
International Society of Service Innovation Professionals
Ā 
PPTX
How to Manage Different Customer Addresses in Odoo 18 Accounting
Celine George
Ā 
PPTX
NSUMD_M1 Library Orientation_June 11, 2025.pptx
Julie Sarpy
Ā 
PPTX
Code Profiling in Odoo 18 - Odoo 18 Slides
Celine George
Ā 
PPTX
Filipino 9 Maikling Kwento Ang Ama Panitikang Asiyano
sumadsadjelly121997
Ā 
PPTX
List View Components in Odoo 18 - Odoo Slides
Celine George
Ā 
PPTX
How to use _name_search() method in Odoo 18
Celine George
Ā 
How to Add New Item in CogMenu in Odoo 18
Celine George
Ā 
Tanja Vujicic - PISA for Schools contact Info
EduSkills OECD
Ā 
ENGLISH-5 Q1 Lesson 1.pptx - Story Elements
Mayvel Nadal
Ā 
Gladiolous Cultivation practices by AKL.pdf
kushallamichhame
Ā 
Peer Teaching Observations During School Internship
AjayaMohanty7
Ā 
SCHIZOPHRENIA OTHER PSYCHOTIC DISORDER LIKE Persistent delusion/Capgras syndr...
parmarjuli1412
Ā 
Hurricane Helene Application Documents Checklists
Mebane Rash
Ā 
K12 Tableau User Group virtual event June 18, 2025
dogden2
Ā 
How to use search fetch method in Odoo 18
Celine George
Ā 
THE PSYCHOANALYTIC OF THE BLACK CAT BY EDGAR ALLAN POE (1).pdf
nabilahk908
Ā 
University of Ghana Cracks Down on Misconduct: Over 100 Students Sanctioned
Kweku Zurek
Ā 
LDMMIA Shop & Student News Summer Solstice 25
LDM & Mia eStudios
Ā 
IIT KGP Quiz Week 2024 Sports Quiz (Prelims + Finals)
IIT Kharagpur Quiz Club
Ā 
June 2025 Progress Update With Board Call_In process.pptx
International Society of Service Innovation Professionals
Ā 
How to Manage Different Customer Addresses in Odoo 18 Accounting
Celine George
Ā 
NSUMD_M1 Library Orientation_June 11, 2025.pptx
Julie Sarpy
Ā 
Code Profiling in Odoo 18 - Odoo 18 Slides
Celine George
Ā 
Filipino 9 Maikling Kwento Ang Ama Panitikang Asiyano
sumadsadjelly121997
Ā 
List View Components in Odoo 18 - Odoo Slides
Celine George
Ā 
How to use _name_search() method in Odoo 18
Celine George
Ā 

File handling-c programming language

  • 1. 1 This session Outline Files Concepts File Programs Busy Bee Workshop – Session IXBusy Bee Workshop – Session IX
  • 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 Busy Bee Workshop – FileBusy Bee Workshop – File
  • 3. Real-life applications ļ‚—Large data volumes ļ‚—Need for flexible approach to store/retrieve data ļ‚—Concept of files Busy Bee Workshop – FileBusy Bee Workshop – File
  • 4. Files ļ‚—File – place on disk 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 Busy Bee Workshop – FileBusy Bee Workshop – File
  • 5. Defining and opening file ļ‚—To store data file in secondary memory (disk) must specify to OS ļ‚—Filename (e.g. sort.c, input.data) ļ‚—Data structure (e.g. FILE) ļ‚—Purpose (e.g. reading, writing, appending) Busy Bee Workshop – FileBusy Bee Workshop – File
  • 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 Busy Bee Workshop – FileBusy Bee Workshop – File
  • 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 */ Busy Bee Workshop – FileBusy Bee Workshop – File
  • 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ā€); Busy Bee Workshop – FileBusy Bee Workshop – File
  • 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 Busy Bee Workshop – FileBusy Bee Workshop – File
  • 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 Busy Bee Workshop – FileBusy Bee Workshop – File
  • 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); Busy Bee Workshop – FileBusy Bee Workshop – File
  • 12. Input/Output operations on filesļ‚—C provides several different functions for reading/writing ļ‚—getc() – read a character ļ‚—putc() – write a character ļ‚—fprintf() – write set of data values ļ‚—fscanf() – read set of data values ļ‚—getw() – read integer ļ‚—putw() – write integer ļ‚—read() – read data from binary file ļ‚—write() – write data into binary file Busy Bee Workshop – FileBusy Bee Workshop – File
  • 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 Busy Bee Workshop – FileBusy Bee Workshop – File
  • 14. Program to read/write using getc/putc #include <stdio.h> main() { FILE *fp1; char c; f1= fopen(ā€œINPUTā€, ā€œwā€); /* open file for writing */ while((c=getchar()) != EOF) /*get char from keyboard until CTL-Z*/ 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 */ Busy Bee Workshop – FileBusy Bee Workshop – File
  • 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 Busy Bee Workshop – FileBusy Bee Workshop – File
  • 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 Busy Bee Workshop – FileBusy Bee Workshop – File
  • 17. C program using getw, putw,fscanf, fprintf #include <stdio.h> main() { int i,sum1=0; FILE *f1; /* open files */ f1 = fopen("int_data.bin","w"); /* write integers to files in binary and text format*/ 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); } #include <stdio.h> main() { int i, sum2=0; FILE *f2; /* open files */ f2 = fopen("int_data.txt","w"); /* write integers to files in binary and text format*/ for(i=10;i<15;i++) printf(f2,"%dn",i); fclose(f2); f2 = fopen("int_data.txt","r"); while(fscanf(f2,"%d",&i)!=EOF) { sum2+=i; printf("text file: i= %dn",i); } /*end while fscanf*/ printf("text sum=%dn",sum2); fclose(f2); } Busy Bee Workshop – FileBusy Bee Workshop – File
  • 18. On execution of previous Programs binary file: i=10 binary file: i=11 binary file: i=12 binary file: i=13 binary file: i=14 binary sum=60, text file: i=10 text file: i=11 text file: i=12 text file: i=13 text file: i=14 text sum=60 Busy Bee Workshop – FileBusy Bee Workshop – File
  • 19. Errors that occur during I/O ļ‚—Typical errors that occur ļ‚—trying to read beyond end-of-file ļ‚—trying to use a file that has not been opened ļ‚—perform operation on file not permitted by ā€˜fopen’ mode ļ‚—open file with invalid filename ļ‚—write to write-protected file Busy Bee Workshop – FileBusy Bee Workshop – 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ā€); Busy Bee Workshop – FileBusy Bee Workshop – File
  • 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 ā€); Busy Bee Workshop – FileBusy Bee Workshop – File
  • 22. Random access to files ļ‚—how to jump to a given position (byte number) in a file without reading all the previous data? ļ‚—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 Busy Bee Workshop – FileBusy Bee Workshop – File
  • 23. Command line arguments ļ‚—can give input to C program from command line E.g. > prog.c 10 name1 name2 …. ļ‚—how to use these 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 Busy Bee Workshop – FileBusy Bee Workshop – File
  • 24. Example args.c args.out 2 join leave 6 6 leave join 2 args.out #include <stdio.h> main(int argc,char *argv[]) { while(argc>0) /* print out all arguments in reverse order*/ { printf("%sn",argv[argc-1]); argc--; } } Busy Bee Workshop – FileBusy Bee Workshop – File