[go: up one dir, main page]

0% found this document useful (0 votes)
6 views22 pages

CSE115 FileProcessing

Uploaded by

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

CSE115 FileProcessing

Uploaded by

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

File Processing

Objectives
 In this chapter, you will learn about
 Files and streams
 Creating a sequential access file
 Reading data from a sequential access file
 Using fgetc() and fputc()
 Using fgets() and fputs()
 Using fprintf() and fscanf()
 Using fopen() and fclose()

prepared by NI, edited by MAF


Files and Streams
 C views a file as a sequential stream of bytes.
 A file ends either with an EOF (end-of-file)
marker or at a specified byte number
specified by the system.
 When a file is opened, a stream is associated
with a file.
 Streams provide communication channels
between files and the programs.

0 1 2 3 4 5 6 7 8 . . . . . n-1

prepared by NI, edited by MAF


Files and Streams
 In addition to providing access to a file, a
stream can also be used to access devices.
 For example, when a program (any program)
is executed, 3 streams are automatically
opened:
 standard input (stdin)
 enable the program to read data from keyboard
 standard output (stdout)
 enable the program to print data on the screen
 standard error (stderr)
 enable program to print errors on the screen
 They are all manipulated using file pointers.

prepared by NI, edited by MAF


Declaring a file
 The standard library <stdio.h> provides some
of the file manipulation function.
 Declaring file:
FILE *the_file;
 States that thefile is a pointer to a file structure
 If there is more than one file, each file needs to
have its own FILE pointer.
 thefile is an internal file name used by the
program to refer to the external file name (the
actual physical file stored on disk).

prepared by NI, edited by MAF


File operation: fopen ()
 Before we can process a file, we must either
open or create it.
 Syntax for fopen( ):
internal_file_name = fopen(external_file_name, OpenMode);
 The fopen() function takes 2 arguments: the
file name and the file mode.

prepared by NI, edited by MAF


File operation: fopen ()
 Example:
thefile = fopen(“my_file.txt”,”r”);
 This statement will try to open a file called
“my_file.txt”.
 my_file.txt is the external file name referring to
a phisycal file on the disk.
 If the file is to be placed in a different directory
than the program directory, the full path need to
be specified. For example: “D:/my_file.txt”
 The function returns a pointer to the
successfully opened file. But if the file cannot be
opened, a NULL is returned.

prepared by NI, edited by MAF


File OpenMode:
 The following is the list of open mode that can be
associated with fopen( ).
 “r” : to open existing file in input mode so data can be
read from it. The file to be opened must exist phisically
on disk for this open mode to be successful.
 “w” : the file is intended to be an output file and we are
planning to write data to it.
 “a” : to append data to the end of existing file.
 “r+” : to open existing file for update (both in input and
output mode). If the file already exist, the content is
not destroy.
 “w+” : destroy the file if already exist and open a new
file for update.
 “a+” : open file for update (adding data at the end of
the file.
prepared by NI, edited by MAF
fopen( )
 You could also ask the users to specify the
name of the file s/he want to open.
 Example:
char filename[50];
printf("Enter file name: ");
gets(filename);

thefile = fopen(filename,"r");

 The users must enter the full filename,


including the extension (.txt, .doc etc) and
path.
prepared by NI, edited by MAF
File operation: fail fopen( )
 If fopen( ) is returning a NULL value, this
means that the fopen( ) has failed.
 This is due to any of the following reasons:
 Opening a non-existing file for reading
 Opening a file for reading or writing without having
granted the appropriate access to the file by the
operating system.
 Opening a file for writing when no disk space is
available.
 Therefore, in our program, we need to write
statements that would handle this failure.

prepared by NI, edited by MAF


fputc( )
 fputc( ) is a function that would write a
character value to the file.
 Syntax:
 Using character variable, ch:
fputc(ch, internal_file_name);
 Example:
char m = ‘c’;
fputc(m, theFile);
 Using character constant:
fputc(‘a’,internal_file_name);
 Example
fputc(‘c’, theFile);
prepared by NI, edited by MAF
fputc() example
#include <stdio.h>
int main(void)
{
char ch;
FILE *thefile;
if ((thefile = fopen("file_putc.txt","w")) == NULL)
{
printf("File fail to open\n");
}
else
{
printf("Enter a character: ");
scanf("%c", &ch);

fputc(ch, thefile);
}
fclose(thefile);
return 0;
}

prepared by NI, edited by MAF


fgetc( )
 fgetc( ) is a function that would read a
character from a file.
 Syntax:
variable = fgetc(internal_file_name);
 Where:
 variable is a character variable to hold the value
returned by fgetc( ).
 Internal_file_name is the pointer to an open file.
 Example:
char c;
fgetc(theFile);
prepared by NI, edited by MAF
fgetc( ): Example
#include <stdio.h>
int main(void)
{
char ch;
FILE *thefile;

if ((thefile = fopen("file_getc.txt","r")) == NULL)


{
printf("File fail to open\n");
}
else
{
ch = fgetc(thefile); /*read a character from the file */
printf("%c\n",ch);/* print the value of ch to the screen
*/
}
fclose(thefile);
return 0;
}

prepared by NI, edited by MAF


fprintf( )
 fprintf( ) is a function that would print values to
the file
 Syntax:
fprintf(internal_name, variable expression);
 Example 1:
fprintf(theFile, “This is an example”);
 Example 2:
char name[50] = “Ahmad”
fprintf(theFile, name);
 Example 3:
char name[50] = “Ahmad”;
fprintf(theFile, “My name is” name);

prepared by NI, edited by MAF


fprintf( ): Example
#include<stdio.h>
int main()
{
int i, power;

FILE *thefile;
if((thefile = fopen("file_fprintf.txt","w"))==NULL)
printf("File could not be open\n");
else{
for(i=1;i<=100;i++){
power=i*i;
fprintf(thefile,"%d\n",power);
}
printf("End of operations");
}
fclose(thefile);
return 0;
}

prepared by NI, edited by MAF


fscanf( )
 fscanf( ) is a function that read a value, or
values of mix data type from a file.
 Syntax:
fscanf(internal_name,formatControl,
variableList);

 Example:
char name[50];
int age;
fscanf(theFile, “%s %d”, name, &age);

prepared by NI, edited by MAF


fscanf( ): Example
#include<stdio.h>
void main()
{
int i, bil, matrik;
char grade[2];
char name[10];
FILE *thefile;

if((thefile = fopen("file_fscanf.txt","r")) == NULL)


printf("File could not be open");
else{
fscanf(thefile,"%d",&bil);
printf("%-10s%-10s%s\n","Matrik","Name","Grade");
for(i=0;i<bil;i++)
{
fscanf(thefile,"%d%s%s",&matrik,name,&grade);
printf("%-10d%-10s%s\n",matrik,name,grade);
}
fclose(thefile);
}
}
prepared by NI, edited by MAF
fputs()
 Writes the string to the file.
 The function begins outputting the string until
it reaches the terminating null character ('\0').
 Syntax
fputs (string variable, internal name);
 Example:
char str [20] = “gummy bear”;
fputs (str, theFile);

prepared by NI, edited by MAF


fputs( ): Example
#include<stdio.h>
int main()
{
char str[20]= "let's picnic!";
FILE *thefile;

if((thefile = fopen("file_fputs.txt","w"))==NULL)
printf("File could not be open\n");
else
fputs(str, thefile);
fclose(thefile);
return 0;
}

prepared by NI, edited by MAF


fgets( )
 fgets( ) read a string of characters from a file.
 Syntax:
fgets(stringVariable, size, internal_name);

 Example:
char content[50];
fgets(content, 50, theFile);
 fgets( ) will read size – 1 character from the
file pointed by theFile, and saves the string
into variable content.

prepared by NI, edited by MAF


fgets( ): Example
#include<stdio.h>
int main()
{
char str[30]= {'\0'};
FILE *thefile;

if((thefile = fopen("file_fgets.txt","r"))==NULL)
printf("File could not be open\n");
else{
fgets(str, 30, thefile);
puts(str);
}
fclose(thefile);
return 0;
}

prepared by NI, edited by MAF

You might also like