Introduction to Programming
Lecture 19
Random Access Files
Files
open ( file_name , mode ) ;
close ( ) ;
ifstream myFilePtr ;
[Link] ( “myFile” , ios :: in ) ;
Output File Stream
ios :: app
ios :: trunc
ios :: ate
Read/write a character
get ( ) Read a character
put ( ) Write a character
Number of Delimiter
characters to read
getline(str,10, ‘\n’) ;
File Positions
File Position Pointer
tellg ( ) Function
[Link] ( ) ;
Returns a whole number which tell you the position
of the next character to be read from the file
tellp ( ) Function
[Link] ( ) ;
Returns a whole number which tell you the position o
the next character to be written in a file
For Positioning in the file
seekg ( ) ;
seekp ( ) ;
seekg ( )
Number of
characters to move Starting point
to
[Link] ( long Num , ios :: origin ) ;
seekg ( )
seekg ( 10L , ios :: beg ) ;
seekg (10L , ios :: cur ) ;
seekg ( 10L , ios :: end ) ;
Example 1
#include<fstream.h>
main ( )
{
int length ;
ifstream inFile ( “[Link]” ) ;
[Link] ( 0L , ios :: end ) ;
length = [Link] ( ) ;
}
File
Name city Date-of-Birth
: : :
Jamil Ahmed Sukkur 10-10-1982
: : :
Rawalpindi
Merge Method
Original file Empty file
This is a text
data And needs
To be replaced NOT
seekg ( )
seekg ( 2201L , ios :: beg ) ;
fstream
fstream myFile ( “[Link]” ,
ios :: in | ios :: out ) ;
OR Function
A B Output
0 0 0
0 1 1
1 0 1
1 1 1
Example 2
This is an Apple
This is a Sample
get ( ) and put ( ) character
in a file
[Link] ( c ) ;
[Link] ( c ) ;
read ( ) and write ( )
Functions
Area in memory
Number of bytes to
be read
read ( char *buff , int count ) ;
Area in memory
Number of bytes to
be written
write ( char *buff , int count ) ;
Example 3
char str [ 10000 ] ;
[Link] ( str , 10000 ) ;
[Link] ( str , 10000 ) ;
seekg ( )
seekg ( 0L , ios :: end ) ;
seekg ( )
seekg ( -1L , ios :: end ) ;
seekg ( )
seekg ( -2L , ios :: cur ) ;
Address of the
integer ‘i’ Number of bytes
to be written
[Link] ( &i , 4 ) ;
sizeof ( ) ;
Address of the
integer ‘i’ Size of integer
[Link] ( &i , sizeof ( i ) ) ;
for ( i = 0 ; i < 100 ; i ++ )
{
[Link] ( &i , sizeof ( i ) ) ;
}
[Link] ( ) ;