Introduction ttoo PPrrooggrraammmmiinngg 
LLeeccttuurree 1199
RRaannddoomm AAcccceessss 
FFiilleess
FFiilleess 
 ooppeenn (( ffiillee__nnaammee ,, 
mmooddee )) ;; 
 cclloossee (( )) ;;
ifstream mmyyFFiilleePPttrr ;; 
mmyyFFiilleePPttrr..ooppeenn (( ““mmyyFFiillee”” ,, iiooss :::: iinn )) 
;;
OOuuttppuutt FFiillee 
SSttrreeaamm 
 iiooss :::: aapppp 
 iiooss :::: ttrruunncc 
 iiooss :::: aattee
Read/wwrriittee aa cchhaarraacctteerr 
ggeett (( )) RReeaadd aa cchhaarraacctteerr 
ppuutt (( )) WWrriittee aa cchhaarraacctteerr
Number of 
characters to read 
Delimiter 
ggeettlliinnee((ssttrr,,1100,, ‘‘nn’’)) ;;
FFiillee 
PPoossiittiioonnss
FFiillee PPoossiittiioonn 
PPooiinntteerr
tteellllgg (( )) FFuunnccttiioonn 
mmyyFFiillee..tteellllgg (( )) ;; 
RReettuurrnnss aa wwhhoollee nnuummbbeerr wwhhiicchh tteellll yyoouu tthhee ppoossiittiioonn 
ooff tthhee nneexxtt cchhaarraacctteerr ttoo bbee rreeaadd ffrroomm tthhee ffiillee
tteellllpp (( )) FFuunnccttiioonn 
mmyyFFiillee..tteellllpp (( )) ;; 
RReettuurrnnss aa wwhhoollee nnuummbbeerr wwhhiicchh tteellll yyoouu tthhee ppoossiittiioonn ooff 
tthhee nneexxtt cchhaarraacctteerr ttoo bbee wwrriitttteenn iinn aa ffiillee
For Positioning iinn tthhee ffiillee 
sseeeekkgg (( )) ;; 
sseeeekkpp (( )) ;;
sseeeekkgg (( )) 
Number of 
characters to move 
Starting point 
to 
ffiilleePPttrr..sseeeekkgg (( lloonngg NNuumm ,, iiooss :::: oorriiggiinn ))
sseeeekkgg (( )) 
sseeeekkgg (( 1100LL ,, iiooss :::: 
bbeegg )) ;; 
sseeeekkgg ((1100LL ,, iiooss :::: ccuurr )) ;; 
sseeeekkgg (( 1100LL ,, iiooss :::: 
eenndd )) ;;
EExxaammppllee 11 
##iinncclluuddee<<ffssttrreeaamm..hh>> 
mmaaiinn (( )) 
{{ 
iinntt lleennggtthh ;; 
iiffssttrreeaamm iinnFFiillee (( ““mmyyFFiillee..ttxxtt”” )) ;; 
iinnFFiillee..sseeeekkgg (( 00LL ,, iiooss :::: eenndd )) ;; 
lleennggtthh == iinnFFiillee..tteellllgg (( )) ;; 
}}
File 
NNaammee cciittyy DDaattee--ooff--BBiirrtthh 
:: :: :: 
JJaammiill AAhhmmeedd SSuukkkkuurr 1100--1100--11998822 
:: :: :: 
Rawalpindi
MMeerrggee MMeetthhoodd 
Original file Empty file 
This is a text 
data And needs 
To be replaced NOT
sseeeekkgg (( )) 
sseeeekkgg (( 22220011LL ,, iiooss :::: bbeegg )) ;;
ffssttrreeaamm 
ffssttrreeaamm mmyyFFiillee (( ““SSaammppllee..ttxxtt”” ,, 
iiooss :::: iinn || iiooss :::: oouutt )) ;;
OORR FFuunnccttiioonn 
AA BB OOuuttppuutt 
00 00 00 
00 11 11 
11 00 11 
11 11 11
EExxaammppllee 22 
TThhiiss iiss aann AAppppllee 
TThhiiss iiss aa SSaammppllee
get ( ) and ppuutt (( )) cchhaarraacctteerr 
iinn aa ffiillee 
mmyyIInnppuuttFFiillee..ggeett (( cc )) ;; 
mmyyOOuuttppuuttFFiillee..ppuutt (( cc )) ;;
read (( )) aanndd wwrriittee (( )) 
FFuunnccttiioonnss 
Area in memory 
Number of bytes to 
be read 
rreeaadd (( cchhaarr **bbuuffff ,, iinntt ccoouunntt )) ;; 
Area in memory Number of bytes to 
be written 
wwrriittee (( cchhaarr **bbuuffff ,, iinntt ccoouunntt )) ;;
Example 3 
char ssttrr [[ 1100000000 ]] ;; 
mmyyIInnppuuttFFiillee..rreeaadd (( ssttrr ,, 1100000000 )) ;; 
mmyyOOuuppuuttFFiillee..wwrriittee (( ssttrr ,, 1100000000 )) ;;
sseeeekkgg (( )) 
seekg ( 00LL ,, iiooss :::: eenndd )) 
;;
sseeeekkgg (( )) 
sseeeekkgg (( --11LL ,, iiooss :::: eenndd ))
sseeeekkgg (( )) 
sseeeekkgg (( --22LL ,, iiooss :::: ccuurr )) ;;
Address of the 
integer ‘i’ Number of bytes 
to be written 
myOutputFile.wwrriittee (( &&ii ,, 44 )) ;;
ssiizzeeooff 
(( )) ;;
Address of the 
integer ‘i’ Size of integer 
myOutputFile.write ( &ii ,, ssiizzeeooff (( ii )) )) ;;
for ( i = 0 ;; ii << 110000 ;; ii ++++ )) 
{{ 
mmyyOOuuttppuuttFFiillee..wwrriittee (( &&ii ,, ssiizzeeooff (( ii )) )) }} 
mmyyOOuuttppuuttFFiillee..cclloossee (( )) ;;

CS201- Introduction to Programming- Lecture 19

  • 1.
  • 2.
  • 3.
    FFiilleess  ooppeenn(( ffiillee__nnaammee ,, mmooddee )) ;;  cclloossee (( )) ;;
  • 4.
    ifstream mmyyFFiilleePPttrr ;; mmyyFFiilleePPttrr..ooppeenn (( ““mmyyFFiillee”” ,, iiooss :::: iinn )) ;;
  • 5.
    OOuuttppuutt FFiillee SSttrreeaamm  iiooss :::: aapppp  iiooss :::: ttrruunncc  iiooss :::: aattee
  • 6.
    Read/wwrriittee aa cchhaarraacctteerr ggeett (( )) RReeaadd aa cchhaarraacctteerr ppuutt (( )) WWrriittee aa cchhaarraacctteerr
  • 7.
    Number of charactersto read Delimiter ggeettlliinnee((ssttrr,,1100,, ‘‘nn’’)) ;;
  • 8.
  • 9.
  • 10.
    tteellllgg (( ))FFuunnccttiioonn mmyyFFiillee..tteellllgg (( )) ;; RReettuurrnnss aa wwhhoollee nnuummbbeerr wwhhiicchh tteellll yyoouu tthhee ppoossiittiioonn ooff tthhee nneexxtt cchhaarraacctteerr ttoo bbee rreeaadd ffrroomm tthhee ffiillee
  • 11.
    tteellllpp (( ))FFuunnccttiioonn mmyyFFiillee..tteellllpp (( )) ;; RReettuurrnnss aa wwhhoollee nnuummbbeerr wwhhiicchh tteellll yyoouu tthhee ppoossiittiioonn ooff tthhee nneexxtt cchhaarraacctteerr ttoo bbee wwrriitttteenn iinn aa ffiillee
  • 12.
    For Positioning iinntthhee ffiillee sseeeekkgg (( )) ;; sseeeekkpp (( )) ;;
  • 13.
    sseeeekkgg (( )) Number of characters to move Starting point to ffiilleePPttrr..sseeeekkgg (( lloonngg NNuumm ,, iiooss :::: oorriiggiinn ))
  • 14.
    sseeeekkgg (( )) sseeeekkgg (( 1100LL ,, iiooss :::: bbeegg )) ;; sseeeekkgg ((1100LL ,, iiooss :::: ccuurr )) ;; sseeeekkgg (( 1100LL ,, iiooss :::: eenndd )) ;;
  • 15.
    EExxaammppllee 11 ##iinncclluuddee<<ffssttrreeaamm..hh>> mmaaiinn (( )) {{ iinntt lleennggtthh ;; iiffssttrreeaamm iinnFFiillee (( ““mmyyFFiillee..ttxxtt”” )) ;; iinnFFiillee..sseeeekkgg (( 00LL ,, iiooss :::: eenndd )) ;; lleennggtthh == iinnFFiillee..tteellllgg (( )) ;; }}
  • 16.
    File NNaammee cciittyyDDaattee--ooff--BBiirrtthh :: :: :: JJaammiill AAhhmmeedd SSuukkkkuurr 1100--1100--11998822 :: :: :: Rawalpindi
  • 17.
    MMeerrggee MMeetthhoodd Originalfile Empty file This is a text data And needs To be replaced NOT
  • 18.
    sseeeekkgg (( )) sseeeekkgg (( 22220011LL ,, iiooss :::: bbeegg )) ;;
  • 19.
    ffssttrreeaamm ffssttrreeaamm mmyyFFiillee(( ““SSaammppllee..ttxxtt”” ,, iiooss :::: iinn || iiooss :::: oouutt )) ;;
  • 20.
    OORR FFuunnccttiioonn AABB OOuuttppuutt 00 00 00 00 11 11 11 00 11 11 11 11
  • 21.
    EExxaammppllee 22 TThhiissiiss aann AAppppllee TThhiiss iiss aa SSaammppllee
  • 22.
    get ( )and ppuutt (( )) cchhaarraacctteerr iinn aa ffiillee mmyyIInnppuuttFFiillee..ggeett (( cc )) ;; mmyyOOuuttppuuttFFiillee..ppuutt (( cc )) ;;
  • 23.
    read (( ))aanndd wwrriittee (( )) FFuunnccttiioonnss Area in memory Number of bytes to be read rreeaadd (( cchhaarr **bbuuffff ,, iinntt ccoouunntt )) ;; Area in memory Number of bytes to be written wwrriittee (( cchhaarr **bbuuffff ,, iinntt ccoouunntt )) ;;
  • 24.
    Example 3 charssttrr [[ 1100000000 ]] ;; mmyyIInnppuuttFFiillee..rreeaadd (( ssttrr ,, 1100000000 )) ;; mmyyOOuuppuuttFFiillee..wwrriittee (( ssttrr ,, 1100000000 )) ;;
  • 25.
    sseeeekkgg (( )) seekg ( 00LL ,, iiooss :::: eenndd )) ;;
  • 26.
    sseeeekkgg (( )) sseeeekkgg (( --11LL ,, iiooss :::: eenndd ))
  • 27.
    sseeeekkgg (( )) sseeeekkgg (( --22LL ,, iiooss :::: ccuurr )) ;;
  • 28.
    Address of the integer ‘i’ Number of bytes to be written myOutputFile.wwrriittee (( &&ii ,, 44 )) ;;
  • 29.
  • 30.
    Address of the integer ‘i’ Size of integer myOutputFile.write ( &ii ,, ssiizzeeooff (( ii )) )) ;;
  • 31.
    for ( i= 0 ;; ii << 110000 ;; ii ++++ )) {{ mmyyOOuuttppuuttFFiillee..wwrriittee (( &&ii ,, ssiizzeeooff (( ii )) )) }} mmyyOOuuttppuuttFFiillee..cclloossee (( )) ;;