0% found this document useful (0 votes)
29 views40 pages

Fundamentals of Programming: Cseg 1104

Uploaded by

melkamuwako5
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)
29 views40 pages

Fundamentals of Programming: Cseg 1104

Uploaded by

melkamuwako5
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/ 40

ASTU

CSEg 1104 Fundamentals of Programming

Lecture #11

2022

Computer Science & Engineering Program


The School of EE & Computing
Adama Science & Technology University
Outline ASTU

Files and Streams


• I/O file stream objects and functions
• Reading and writing character-based files
• Random file access
• File streams as function arguments
Case Study: Weather Forecast File Updates
• Reading Assignments
• Chapter 8 of the text book
• About ASCII Codes
– http://www.theasciicode.com.ar

2
I/O File Stream Objects and Functions ASTU

• To store and retrieve data outside a


C++ program, two items are needed:
– A file
– A file stream object
• A file is a collection of data stored
together under a common name,
usually on disk, magnetic tape, USB
drive, or CD
• Each file has a unique file name,
referred to as file’s external name
3
I/O File Stream Objects and Functions ASTU

• Choose filenames that indicate the


type of data in the file
• Two basic types of files exist
– Text files
• (also known as character-based files)
– Binary files

4
File Stream Objects ASTU

• File stream: A one-way transmission path used


to connect a file stored on a physical device, such
as a disk or CD, to a program
• Each file stream has its own mode that
determines direction of data on transmission path
• That is, whether path moves data from a file to a
program or from a program to a file
• Input file stream: File stream that receives or
reads data from a file to a program
• Output file stream: File stream that sends or
writes data to a file

5
ASTU
File Stream Objects
• For each file your program uses,
regardless of file’s type, a distinct file
stream object must be created

6
File Stream Functions ASTU

• Each file stream object has access to


functions defined for its class
• Methods perform following functions:
– Connecting stream object name to external
filename: opening a file
– Determining whether successful connection
has been made
– Closing connection: closing a file
– Getting next data item into program from
input stream
– Putting new data item from program onto
output stream
7
File Stream Functions ASTU

• When existing file is connected to input stream,


file’s data is made available for input, starting
with first data item in file
– Called read mode or input mode
• File connected to output stream creates new file
and makes file available for output
– Called output mode
• When opening file for input or output, check that
connection has been established before
attempting to use file

8
File Stream Functions ASTU

9
Example 1 ASTU

10
ASTU

Desktop File Opened

11
Example 2 ASTU

12
Example 2: Testing ASTU

13
Closing a File ASTU

• File is closed using close() method


• This method breaks connection between
file’s external name and file stream,
which can be used for another file
• Because all computers have limit on
maximum number of files that can be
open at one time, closing files no longer
needed makes good sense
• Any open files existing at end of normal
program execution are closed
automatically by OS
14
Reading and Writing Character-Based Files ASTU

• Reading or writing character-based


files involves almost identical
operations for reading input from
keyboard and writing data to screen
– For writing to a file, cout object is
replaced by ofstream object name
declared in program
– Reading data from text file is almost
identical to reading data from standard
keyboard, except cin object is replaced
by ifstream object declared in program
15
Example 3 ASTU

16
Reading from a Text File ASTU

17
Example 4 ASTU

18
Standard Device Files ASTU

• Logical file object: Stream that connects


a file of logically related data to a program
• Physical file object: Stream that
connects to hardware device such as
keyboard, screen, or printer
• Actual physical device assigned to your
program for data entry is formally called
standard input file
– cin method calls are routed to this standard
input file
– cout method calls are written to a device that
has been assigned as standard output file
19
Random File Access ASTU

• File access: Refers to process of


retrieving data from a file
• Two types of file access
– Sequential file access
– Random file access
• File organization: Refers to the way
data is stored in a file
• The files you have used and will
continue to use have a sequential
organization, meaning characters in file
are stored in a sequential manner
20
Random File Access ASTU

• Each open file has been read in a


sequential manner, meaning
characters are accessed one after
another, which is called sequential
access
– Although characters are stored
sequentially, they don’t have to be
accessed in same way

21
Random File Access ASTU

• In random access, any character in


opened file can be read without
having to read all characters stored
ahead of it first
– To provide random access, each
ifstream object creates a file position
marker automatically
– This marker is a long integer
representing an offset from the
beginning of file

22
Random File Access ASTU

• File Position Marker Functions

• seek() method allows programmer to


move to any position in file
• Character’s position is referred to as its
offset from the start of file
23
Example 5: Using seekg() and tellg() ASTU

Suppose test.dat contains this text

24
Example 5: Using seekg() and tellg() ASTU

-18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1


0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
EO
T h e g r a d e w a s 9 2 . 5 F

25
File Streams as Function Arguments ASTU

• A file stream object can be used as a


function argument
• The function’s formal parameter
must be a reference to the
appropriate stream, either
ifstream& or ofstream&
– Examples: inOut(), getOpen()

26
Example 7: File Streams as Function Arguments
ASTU

27
Example 7: File Streams as Function Arguments
ASTU

28
Case Study: Weather Forecast File Updates
ASTU

• After a data file has been created,


application programs are typically
written to read and update the file with
current data
• In this case study, a file is used as a
database storing the ten most recent
temperature forecasts of Addis Ababa
– Analyze the problem
– Develop a solution
– Code the solution
– Test and correct the program
29
Case Study: Weather Forecast File Updates
ASTU

• Analyze the Problem


– Data Obtained from
http://www.timeanddate.com/weather/ethiopia/addis-ab
aba/ext
– A file containing the ten most recent forecasts is
Tempera-
created Day
ture
– File Name
Only Higher and Extension: weather.in
Temperatures Sat, 30 Apr 12 / 19 °C
Sun, 1 May 13 / 17 °C
Mon, 2 May 12 / 19 °C
Tue, 3 May 11 / 20 °C
Oldest
Wed, 4 May 10 / 21 °C
Thu, 5 May 11 / 21 °C
Fri, 6 May 10 / 20 °C
Sat, 7 May 12 / 23 °C
Sun, 8 May 12 / 23 °C
Mon, 9 May 11 / 23 °C
Tue, 10 May 11 / 22 °C
Wed, 11 May 11 / 23 °C
Recent Thu, 12 May 11 / 21 °C
Fri, 13 May 10 / 21 °C
30
Sat, 14 May 11 / 22 °C
Case Study: Weather Forecast File Updates
ASTU

• Analyze the Problem


– The input data for this problem consists of
• a file of 10 daily weather forecasts
– Each forecast contains
» a day (Mon-Sun), date (1-31), month(Jan-Dec),
temperature(0-35)
• a user-input value of the most recent weather
forecast. It contains
» a day (Mon-Sun), date (1-31), month(Jan-Dec),
temperature(0-35)
– There are two required outputs:
• A file of the 10 most recent daily forecasts
values
• The average of the data in the updated file
31
Case Study: Weather Forecast File Updates
ASTU

• Develop a Solution

32
Case Study: Weather Forecast File Updates
ASTU

33
Case Study: Weather Forecast File Updates
ASTU

34
Case Study: Weather Forecast File Updates
ASTU

35
Case Study: Weather Forecast File Updates
ASTU

36
Case Study: Weather Forecast File Updates
ASTU

37
Testing the Program ASTU

38
Testing the Program ASTU

weather.in weather.out

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

S a t 3 0 A p r 1 9 ° C LF LF

18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

S u n 1 M a y 1 7 ° C LF LF

39
Looking ASCII Codes Using get Function ASTU

40

You might also like