C Programming File Handling
C Programming File Handling
File Access
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 2
Standard I/O
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 3
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 4
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 5
Example 1
#include <stdio.h>
#include <string.h>
#define MAXNO 100
#define ROLL 9
#define NAME 51
& %
#define NOTFOUND -1
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 6
return lInd ;
return NOTFOUND ;
}
int main()
{
int noOfStdnt, i, index ;
struct studData data[MAXNO] ;
char rollNo[ROLL] ;
FILE *fp ;
fp = fopen("openDat", "r");
fscanf(fp, "%d", &noOfStdnt);
for(i=0; i<noOfStdnt; ++i) {
fscanf(fp, "%s", data[i].rollNo);
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 8
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 10
10
02CE2008 A. Maria Watson 8.00
02CH2002 P. K. Singh 8.00
02CH2007 L. P. Yadav 6.50
02CS2005 P. Baluchandran 9.25
02CS2010 D. K. Sarlekar 7.50
02EC2006 V. K. R. V. Rao 9.00
02MA2003 Imtiaz Ali 8.50
02NA2004 S. P. Sengupta 8.25
02PH2001 V. Bansal 7.50
02SI2009 S. V. Reddy 7.00
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 11
FILE *fp
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 12
fp=fopen("openDat","r");
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 13
fscanf(fp,"%s", data[i].rollNo);
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 14
fclose(fp)
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 15
Example 2
#include <stdio.h>
#include <string.h>
#define MAXNO 100
#define ROLL 9
#define NAME 51
struct studData {
char rollNo[ROLL] ;
char name[NAME] ;
float cgpa ;
};
& %
int main() // fileOpen2.c
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 16
{
int noOfStdnt, i ;
struct studData data[MAXNO] ;
FILE *fpO, *fpI ;
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 18
outDat
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 19
Note
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 20
Note
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 21
Example 3
#include <stdio.h>
#include <string.h>
#define MAXNO 100
#define ROLL 9
#define NAME 51
struct studData {
char rollNo[ROLL] ;
char name[NAME] ;
float cgpa ;
};
& %
int main() // fileOpen3.c
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 22
{
int noOfStdnt, i ;
struct studData data[MAXNO] ;
FILE *fp ;
char roll[ROLL], name[NAME];
float cgpa;
fp = fopen("openDat", "a");
printf("Enter roll no., name and cgpa:\n");
scanf("%s %[^0-9] %f", roll, name, &cgpa);
fprintf(fp, "%s %s %5.2f\n", roll, name, cgpa);
fclose(fp);
fp = fopen("openDat", "r");
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 23
fclose(fp);
return 0;
}
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 25
Note
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 26
Example 4
#include <stdio.h>
#include <string.h>
#define MAXNO 100
#define ROLL 9
#define NAME 51
struct studData {
char rollNo[ROLL] ;
char name[NAME] ;
float cgpa ;
};
& %
int main() // fileOpen4.c
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 27
{
int noOfStdnt, i ;
struct studData data[MAXNO] ;
FILE *fp ;
char roll[ROLL], name[NAME];
float cgpa;
++noOfStdnt;
fseek(fp, 0L, SEEK_SET);
fprintf(fp, "%d", noOfStdnt);
}
putchar(’\n’);
fclose(fp);
return 0;
}
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 30
fseek()
& %
Lect 29 Goutam Biswas
' $
PDS: CS 11002 Computer Sc & Engg: IIT Kharagpur 31
Note
& %
Lect 29 Goutam Biswas