[go: up one dir, main page]

0% found this document useful (0 votes)
65 views14 pages

Wa0000.

This document discusses file handling in C. It covers opening, reading from and writing to files, as well as closing files. It explains that files allow data to be stored permanently and accessed by programs. Basic file operations include opening a file using fopen(), reading from and writing to files using functions like getc(), putc(), fscanf() and fprintf(), and closing the file using fclose(). Command line arguments allow passing filenames and other parameters to programs.

Uploaded by

ANUJ TADKASE
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views14 pages

Wa0000.

This document discusses file handling in C. It covers opening, reading from and writing to files, as well as closing files. It explains that files allow data to be stored permanently and accessed by programs. Basic file operations include opening a file using fopen(), reading from and writing to files using functions like getc(), putc(), fscanf() and fprintf(), and closing the file using fclose(). Command line arguments allow passing filenames and other parameters to programs.

Uploaded by

ANUJ TADKASE
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 14

File Handling in C

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

Basic File Operations

Opening a file
Reading data from a file
Writing data to a file Closing a file

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

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.
LO

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");

6
CO
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", "w");

fclose (xyz);

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 (c, fp);

8
00

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);
}

Contd.
H
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);

10

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");

11

Example

typedef struct {
int
roll;
char dept_code[6];
float cgpa;
} STUD:

main() {
FILE *stud;
STUD s;
while (1) {

}
if (feof (stud)) break;
fscanf (stud, "%d %s %f", &s.roll,

count ++;
s.dept code, &s.cgpa);

sum += s.cgpa;

printf("\nThe average cgpa is %f",


float sum = 0.0;
int count = 0;
fclose (stud);
stud = fopen("stud.dat", "r");
}
sum/count);

12

Arguments to main ()
Command line arguments are parameters
supplied to a program, when the program is
invoked.
cc myfile.c
Cc xyz.c -Im

netscape www.mailcity.com
average 10 20 30 40 50

How do these parameters get into the


program?
Every C program has a main function.
main can take two arguments conventionally called
argc and argv.
Information regarding command line arguments
are passed to the program through argc and argv.

13

Example :: convert a text file to


all UPPERCASE, using
command line arguments

main (int argc, char *argv[]{


FILE *in, *out;
char c;

in = fopen(argv[1], “r”); out = fopen(argv[2], “w");


while ((c = getc (in)) != EOF)
putc (toupper (c), out);
fclose (in);
fclose (out);
Run this program as:

a.out old new


}

14

You might also like