Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright...

107

Transcript of Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright...

Page 1: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O
Page 2: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Chapter 6

I/O Streams as an Introduction to Objects and Classes

Page 3: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Overview

6.1 Streams and Basic File I/O

6.2 Tools for Stream I/O

6.3 Character I/O

Slide 6- 3

Page 4: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

6.1

Streams and Basic File I/O

Page 5: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

I/O Streams

n I/O refers to program input and outputn Input is delivered to your program via a stream objectn Input can be from

n The keyboardn A file

n Output is delivered to the output device via a streamobject

n Output can be to n The screenn A file

Slide 6- 5

Page 6: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Objects

n Objects are special variables thatn Have their own special-purpose functionsn Set C++ apart from earlier programming

languages

Slide 6- 6

Page 7: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Streams and Basic File I/O

n Files for I/O are the same type of files used tostore programs

n A stream is a flow of data.n Input stream: Data flows into the program

n If input stream flows from keyboard, the program willaccept data from the keyboard

n If input stream flows from a file, the program will acceptdata from the file

n Output stream: Data flows out of the programn To the screenn To a file

Slide 6- 7

Page 8: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

cin And cout Streams

n cinn Input stream connected to the keyboard

n cout n Output stream connected to the screen

n cin and cout defined in the iostream libraryn Use include directive: #include <iostream>

n You can declare your own streams to use with files.

Slide 6- 8

Page 9: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Why Use Files?

n Files allow you to store data permanently!n Data output to a file lasts after the program endsn An input file can be used over and over

n No typing of data again and again for testingn Create a data file or read an output file at your

conveniencen Files allow you to deal with larger data sets

Slide 6- 9

Page 10: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

File I/O

n Reading from a filen Taking input from a filen Done from beginning to the end (for now)

n No backing up to read something again (OK to start over)n Just as done from the keyboard

n Writing to a filen Sending output to a filen Done from beginning to end (for now)

n No backing up to write something again( OK to start over)n Just as done to the screen

Slide 6- 10

Page 11: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Stream Variables

n Like other variables, a stream variable… n Must be declared before it can be usedn Must be initialized before it contains valid data

n Initializing a stream means connecting it to a filen The value of the stream variable can be thought of

as the file it is connected ton Can have its value changed

n Changing a stream value means disconnecting from one file and connecting to another

Slide 6- 11

Page 12: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Streams and Assignment

n A stream is a special kind of variable called an objectn Objects can use special functions to complete tasks

n Streams use special functions instead of the assignment operator to change values

Slide 6- 12

Page 13: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Declaring An Input-file Stream Variable

n Input-file streams are of type ifstream

n Type ifstream is defined in the fstream libraryn You must use the include and using directives

#include <fstream>using namespace std;

n Declare an input-file stream variable using ifstream in_stream;

Slide 6- 13

Page 14: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Declaring An Output-file Stream Variable

n Ouput-file streams of are type ofstreamn Type ofstream is defined in the fstream library

n You must use these include and using directives#include <fstream>using namespace std;

n Declare an input-file stream variable using ofstream out_stream;

Slide 6- 14

Page 15: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Connecting To A File

n Once a stream variable is declared, connect it toa filen Connecting a stream to a file is opening the filen Use the open function of the stream object

in_stream.open("infile.dat");

Slide 6- 15

PeriodFile name on the disk

Double quotes

Page 16: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Using The Input Stream

n Once connected to a file, the input-stream variable can be used to produce input just asyou would use cin with the extraction operatorn Example:

int one_number, another_number;in_stream >> one_number

>> another_number;

Slide 6- 16

Page 17: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Using The Output Stream

n An output-stream works similarly to the input-streamn ofstream out_stream;

out_stream.open("outfile.dat");

out_stream << "one number = "<< one_number<< "another number = " << another_number;

Slide 6- 17

Page 18: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

External File Names

n An External File Name…n Is the name for a file that the operating system uses

n infile.dat and outfile.dat used in the previous examples

n Is the "real", on-the-disk, name for a file n Needs to match the naming conventions on

your systemn Usually only used in the stream's open statementn Once open, referred to using the

name of the stream connected to it.

Slide 6- 18

Page 19: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Closing a File

n After using a file, it should be closedn This disconnects the stream from the filen Close files to reduce the chance of a file being

corrupted if the program terminates abnormallyn It is important to close an output file if your

program later needs to read input from the output filen The system will automatically close files if you

forget as long as your program ends normally

Slide 6- 19

Display 6.1

Page 20: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Objects

n An object is a variable that has functions and data associated with itn in_stream and out_stream each have a

function named open associated with themn in_stream and out_stream use different

versions of a function named open n One version of open is for input filesn A different version of open is for output files

Slide 6- 20

Page 21: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Member Functions

n A member function is a function associated withan objectn The open function is a member function of

in_stream in the previous examplesn A different open function is a member function

of out_stream in the previous examples

Slide 6- 21

Page 22: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Objects and Member Function Names

n Objects of different types have different member functionsn Some of these member functions might have the same

name

n Different objects of the same type have the same member functions

Slide 6- 22

Page 23: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Classes

n A type whose variables are objects, is a classn ifstream is the type of the in_stream variable (object)n ifstream is a classn The class of an object determines its

member functionsn Example:

ifstream in_stream1, in_stream2;n in_stream1.open and in_stream2.open are the same

function but might have different arguments

Slide 6- 23

Page 24: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Class Member Functions

n Member functions of an object are the memberfunctions of its class

n The class determines the member functions ofthe objectn The class ifstream has an open functionn Every variable (object) declared of type ifstream

has that open function

Slide 6- 24

Page 25: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Calling a Member Function

n Calling a member function requires specifying the object containing the function

n The calling object is separated from the member function by the dot operator

n Example: in_stream.open("infile.dat");

Slide 6- 25

Calling objectDot operator

Member function

Page 26: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Member Function Calling Syntax

n Syntax for calling a member function:

Calling_object.Member_Function_Name(Argument_list);

Slide 6- 26

Page 27: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Errors On Opening Files

n Opening a file could fail for several reasonsn Common reasons for open to fail include

n The file might not existn The name might be typed incorrectly

n May be no error message if the call to open failsn Program execution continues!

Slide 6- 27

Page 28: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Catching Stream Errors

n Member function fail, can be used to test the success of a stream operationn fail returns a boolean type (true or false)n fail returns true if the stream operation failed

Slide 6- 28

Page 29: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Halting Execution

n When a stream open function fails, it is generally best to stop the program

n The function exit, halts a programn exit returns its argument to the operating systemn exit causes program execution to stopn exit is NOT a member function

n Exit requires the include and using directives#include <cstdlib>using namespace std;

Slide 6- 29

Page 30: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Using fail and exit

n Immediately following the call to open, check that the operation was successful:

in_stream.open("stuff.dat");if( in_stream.fail( ) ){

cout << "Input file opening failed.\n";exit(1) ;

}

Slide 6- 30

Display 6.2

Page 31: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Techniques for File I/O

n When reading input from a file…n Do not include prompts or echo the input

n The lines cout << "Enter the number: ";cin >> the_number;cout << "The number you entered is "

<< the_number;become just one line

in_file >> the_number;

n The input file must contain exactly the data expected

Slide 6- 31

Page 32: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Appending Data (optional)

n Output examples so far create new filesn If the output file already contains data, that data

is lostn To append new output to the end an existing file

n use the constant ios::app defined in the iostreamlibrary:

outStream.open("important.txt", ios::app);

n If the file does not exist, a new file will be created

Slide 6- 32

Display 6.3

Page 33: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

File Names as Input (optional)

n Program users can enter the name of a file to use for input or for output

n Program must use a variable that can hold multiple characters n A sequence of characters is called a string n Declaring a variable to hold a string of characters:

char file_name[16];n file_name is the name of a variablen Brackets enclose the maximum number of characters + 1 n The variable file_name contains up to 15 characters

Slide 6- 33

Page 34: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Using A Character String

n char file_name[16];cout << "Enter the file_name ";cin >> file_name;ifstream in_stream;in_stream.open(file_name);if (in_stream.fail( ) ){

cout << "Input file opening failed.\n";exit(1);

}

Slide 6- 34

Display 6.4 (1)Display 6.4 (2)

Page 35: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Section 6.1 Conclusion

n Can youn Write a program that uses a stream called fin which

will be connected to an input file and a stream calledfout which will be connected to an output file? Howdo you declare fin and fout? What include directive, if any, do you nee to place in yourprogram file?

n Name at least three member functions of an iostream object and give examples of usage of each?

Slide 6- 35

Page 36: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

6.2

Tools for Streams I/O

Page 37: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Tools for Stream I/O

n To control the format of the program's output n We use commands that determine such details

as:n The spaces between itemsn The number of digits after a decimal pointn The numeric style: scientific notation for fixed pointn Showing digits after a decimal point even if they are

zeroesn Showing plus signs in front of positive numbersn Left or right justifying numbers in a given space

Slide 6- 37

Page 38: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Formatting Output to Files

n Format output to the screen with:cout.setf(ios::fixed);cout.setf(ios::showpoint);cout.precision(2);

n Format output to a file using the out-file streamnamed out_stream with:

out_stream.setf(ios::fixed);out_stream.setf(ios::showpoint);out_stream.precision(2);

Slide 6- 38

Page 39: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

out_stream.precision(2);

n precision is a member function of output streamsn After out_stream.precision(2);

Output of numbers with decimal points…n will show a total of 2 significant digits

23. 2.2e7 2.2 6.9e-1 0.00069OR

n will show 2 digits after the decimal point23.56 2.26e7 2.21 0.69 0.69e-4

n Calls to precision apply only to the streamnamed in the call

Slide 6- 39

Page 40: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

setf(ios::fixed);

n setf is a member function of output streamsn setf is an abbreviation for set flags

n A flag is an instruction to do one of two optionsn ios::fixed is a flag

n After out_stream.setf(ios::fixed);All further output of floating point numbers…

n Will be written in fixed-point notation, the way we normally expect to see numbers

n Calls to setf apply only to the stream named inthe call

Slide 6- 40

Page 41: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

setf(ios::showpoint);

n After out_stream.setf(ios::showpoint);

Output of floating point numbers…n Will show the decimal point even if all digits after the

decimal point are zeroes

Slide 6- 41

Display 6.5

Page 42: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Creating Space in Output

n The width function specifies the number of spaces for the next itemn Applies only to the next item of output

n Example: To print the digit 7 in four spaces useout_stream.width(4);

out_stream << 7 << endl;n Three of the spaces will be blank

Slide 6- 42

7 7(ios::right) (ios::left)

Page 43: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Not Enough Width?

n What if the argument for width is too small?n Such as specifying

cout.width(3); when the value to print is 3456.45

n The entire item is always outputn If too few spaces are specified, as many more

spaces as needed are used

Slide 6- 43

Page 44: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Unsetting Flags

n Any flag that is set, may be unsetn Use the unsetf function

n Example:cout.unsetf(ios::showpos);

causes the program to stop printing plus signs on positive numbers

Slide 6- 44

Page 45: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Manipulators

n A manipulator is a function called in a nontraditional wayn Manipulators in turn call member functionsn Manipulators may or may not have argumentsn Used after the insertion operator (<<) as if the

manipulator function call is an output item

Slide 6- 45

Page 46: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

The setw Manipulator

n setw does the same task as the member function widthn setw calls the width function to set spaces for output

n Example: cout << "Start" << setw(4) << 10<< setw(4) << setw(6) << 30;

produces: Start 10 20 30

Slide 6- 46

Two Spaces Four Spaces

Page 47: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

The setprecision Manipulator

n setprecision does the same task as the member function precision

n Example: cout.setf(ios::fixed);cout.setf(ios::showpoint);cout << "$" << setprecision(2)

<< 10.3 << endl<< "$" << 20.5 << endl;

produces: $10.30$20.50

n setprecision setting stays in effect until changed

Slide 6- 47

Page 48: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Manipulator Definitions

n The manipulators setw and setprecision are defined in the iomanip libraryn To use these manipulators, add these lines

#include <iomanip>using namespace std;

Slide 6- 48

Page 49: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Stream Names as Arguments

n Streams can be arguments to a functionn The function's formal parameter for the stream

must be call-by-reference

n Example: void make_neat(ifstream& messy_file, ofstream& neat_file);

Slide 6- 49

Page 50: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

The End of The File

n Input files used by a program may vary in lengthn Programs may not be able to assume the number

of items in the filen A way to know the end of the file is reached:

n The boolean expression (in_stream >> next)n Reads a value from in_stream and stores it in nextn True if a value can be read and stored in nextn False if there is not a value to be read (the end of the file)

Slide 6- 50

Page 51: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

End of File Example

n To calculate the average of the numbers in a filen double next, sum = 0;

int count = 0;while(in_stream >> next){

sum = sum + next;count++;

}

double average = sum / count;

Slide 6- 51

Page 52: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Stream Arguments and Namespaces

n Using directives have been local to function definitions in the examples so far

n When parameter type names are in a namespacen A using directive must be outside the function so

C++ will understand the parameter type names suchas ifstream

n Easy solution is to place the using directive at thebeginning of the filen Many experts do not approve as this does not allow

using multiple namespaces with names in common

Slide 6- 52

Page 53: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Program Example

n The program in Display 6.6…n Takes input from rawdata.datn Writes output to the screen and to neat.dat

n Formatting instructions are used to create a neater layoutn Numbers are written one per line in a field width of 12n Each number is written with 5 digits after the decimal pointn Each number is written with a plus or minus sign

n Uses function make_neat that has formal parametersfor the input-file stream and output-file stream

Slide 6- 53

Display 6.6 (1) Display 6.6 (2) Display 6.6 (3)

Page 54: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Section 6.2 Conclusion

n Can youn Show the output produced when the following

line is executed?

cout << "*" << setw(3) << 12345 << "*" endl;

n Describe the effect of each of these flags?Ios::fixed ios::scientific ios::showpointios::right ios::right ios::showpos

Slide 6- 54

Page 55: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

6.3

Character I/O

Page 56: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Character I/O

n All data is input and output as charactersn Output of the number 10 is two characters '1' and '0'n Input of the number 10 is also done as '1' and '0'n Interpretation of 10 as the number 10 or as characters

depends on the programn Conversion between characters and numbers is

usually automatic

Slide 6- 56

Page 57: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Low Level Character I/O

n Low level C++ functions for character I/On Perform character input and output n Do not perform automatic conversionsn Allow you to do input and output in anyway you

can devise

Slide 6- 57

Page 58: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Member Function get

n Function getn Member function of every input streamn Reads one character from an input streamn Stores the character read in a variable of type

char, the single argument the function takesn Does not use the extraction operator (>>)

which performs some automatic workn Does not skip blanks

Slide 6- 58

Page 59: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Using get

n These lines use get to read a character and store it in the variable next_symbol

char next_symbol;cin.get(next_symbol);

n Any character will be read with these statementsn Blank spaces too!n '\n' too! (The newline character)

Slide 6- 59

Page 60: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

get Syntax

n input_stream.get(char_variable);

n Examples: char next_symbol;cin.get(next_symbol);

ifstream in_stream;in_stream.open("infile.dat");in_stream.get(next_symbol);

Slide 6- 60

Page 61: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

More About get

n Given this code: char c1, c2, c3;cin.get(c1);cin.get(c2);cin.get(c3);

and this input:ABCD

n c1 = 'A' c2 = 'B' c3 = '\n'n cin >> c1 >> c2 >> c3; would place 'C' in c3

(the ">>" operator skips the newline character)

Slide 6- 61

Page 62: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

The End of The Line

n To read and echo a line of inputn Look for '\n' at the end of the input line:

cout<<"Enter a line of input and I will "<< "echo it.\n";

char symbol;do{

cin.get(symbol);cout << symbol;

} while (symbol != '\n');n All characters, including '\n' will be output

Slide 6- 62

Page 63: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

'\n ' vs "\n "

n '\n'n A value of type charn Can be stored in a variable of type char

n "\n"n A string containing only one charactern Cannot be stored in a variable of type char

n In a cout-statement they produce the same result

Slide 6- 63

Page 64: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Member Function put

n Function putn Member function of every output streamn Requires one argument of type charn Places its argument of type char in the output

streamn Does not do allow you to do more than

previous output with the insertion operator and cout

Slide 6- 64

Page 65: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

put Syntax

n Output_stream.put(Char_expression);

n Examples: cout.put(next_symbol);cout.put('a');

ofstream out_stream;out_stream.open("outfile.dat");out_stream.put('Z');

Slide 6- 65

Page 66: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Member Function putback

n The putback member function places a character in the input streamn putback is a member function of every input streamn Useful when input continues until a specific character

is read, but you do not want to process the charactern Places its argument of type char in the input streamn Character placed in the stream does not have to

be a character read from the stream

Slide 6- 66

Page 67: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

putback Example

n The following code reads up to the first blank in the input stream fin, and writes the characters tothe file connected to the output stream foutn fin.get(next);

while (next != ' '){

fout.put(next);fin.get(next);

}fin.putback(next);

n The blank space read to end the loop is put back intothe input stream

Slide 6- 67

Page 68: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Program ExampleChecking Input

n Incorrect input can produce worthless output

n Use input functions that allow the user to re-enter input until it is correct, such asn Echoing the input and asking the user if it is

correctn If the input is not correct, allow the user to

enter the data again

Slide 6- 68

Page 69: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Checking Input: get_int

n The get_int function seen in Display 6.7obtains an integer value from the usern get_int prompts the user, reads the input, and displays

the inputn After displaying the input, get_int asks the user to

confirm the number and reads the user's responseusing a variable of type character

n The process is repeated until the user indicates witha 'Y' or 'y' that the number entered is correct

Slide 6- 69

Page 70: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Checking Input: new_line

n The new_line function seen in Display 6.7 is called by the get_int functionn new_line reads all the characters remaining in the

input line but does nothing with them, essentially discarding them

n new_line is used to discard what follows the first character of the the user's response to get_line's "Is that correct? (yes/no)"

n The newline character is discarded as well

Slide 6- 70

Display 6.7 (1)Display 6.7 (2)

Page 71: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved. Slide 10- 71

Inheritance and Output

n ostream is the class of all output streamsn cout is of type ostream

n ofstream is the class of output-file streamsn The ofstream class is a child class of ostreamn More about this in Chapter 10n This function can be called with ostream or

ofstream argumentsvoid say_hello(ostream& any_out_stream){

any_out_stream << "Hello";}

Page 72: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved. Slide 10- 72

Program Example:Another new_line Function

n The new_line function from Display 6.7 only works with cin

n This version works for any input stream

void new_line(istream& in_stream){

char symbol;do{

in_stream.get(symbol);} while (symbol != '\n');

}

Page 73: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved. Slide 10- 73

Program Example:Calling new_line

n The new version of new_line can be called withcin as the argument

new_line(cin);n If the original version of new_line is kept in the

program, this call produces the same resultnew_line( );

n New_line can also be called with an input-file stream as an argument

new_line(fin);

Page 74: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved. Slide 10- 74

Default Arguments

n It is not necessary to have two versions of the new_line functionn A default value can be specified in the

parameter listn The default value is selected if no argument is

available for the parametern The new_line header can be written as

new_line (istream & in_stream = cin)n If new_line is called without an argument, cin is

used

Page 75: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved. Slide 10- 75

Multiple Default Arguments

n When some formal parameters have defaultvalues and others do notn All formal parameters with default values must be

at the end of the parameter listn Arguments are applied to the all formal parameters

in order just as we have seen beforen The function call must provide at least as many

arguments as there are parameters without defaultvalues

Page 76: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved. Slide 10- 76

Default Argument Example

n void default_args(int arg1, int arg2 = -3){

cout << arg1 << ' ' << arg2 << endl;}

n default_args can be called with one or two parametersn default_args(5); //output is 5 -3n default_args(5, 6); //output is 5 6

Page 77: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Checking Input:Check for Yes or No?

n get_int continues to ask for a number until theuser responds 'Y' or 'y' using the do-while loop

do{

// the loop body} while ((ans !='Y') &&(ans != 'y') )

n Why not use ((ans =='N') | | (ans == 'n') )?n User must enter a correct response to continue

a loop tested with ((ans =='N') | | (ans == 'n') )n What if they mis-typed "Bo" instead of "No"?

n User must enter a correct response to end the loop tested with ((ans !='Y') &&(ans != 'y') )

Slide 6- 77

Page 78: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Mixing cin >> and cin.get

n Be sure to deal with the '\n' that ends each input line if using cin >> and cin.getn "cin >>" reads up to the '\n'n The '\n' remains in the input streamn Using cin.get next will read the '\n'n The new_line function from Display 6.7 can

be used to clear the '\n'

Slide 6- 78

Page 79: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

'\n' Example

n The Code: cout << "Enter a number:\n";int number;cin >> number;cout << "Now enter a letter:\n";char symbol;cin.get(symbol);

Slide 6- 79

The Dialogue:Enter a number:21Now enter a letter:A

The Result:number = 21symbol = '\n'

Page 80: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

A Fix To Remove '\n'

n cout << "Enter a number:\n";int number;cin >> number;cout << "Now enter a letter:\n";char symbol;cin >>symbol;

Slide 6- 80

Page 81: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Another '\n' Fix

n cout << "Enter a number:\n";int number;cin >> number;new_line( ); // From Display 6.7cout << "Now enter a letter:\n";char symbol;cin.get(symbol);

Slide 6- 81

Page 82: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Detecting the End of a File

n Member function eof detects the end of a filen Member function of every input-file streamn eof stands for end of filen eof returns a boolean value

n True when the end of the file has been reachedn False when there is more data to read

n Normally used to determine when we are NOT at the end of the file

n Example: if ( ! in_stream.eof( ) )

Slide 6- 82

Page 83: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Using eof

n This loop reads each character, and writes it tothe screen

n in_stream.get(next);while (! in_stream.eof( ) ){

cout << next;in_stream.get(next);

}n ( ! In_stream.eof( ) ) becomes false when the

program reads past the last character in the file

Slide 6- 83

Page 84: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

The End Of File Character

n End of a file is indicated by a special charactern in_stream.eof( ) is still true after the last

character of data is readn in_stream.eof( ) becomes false when the

special end of file character is read

Slide 6- 84

Page 85: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

How To Test End of File

n We have seen two methodsn while ( in_stream >> next)n while ( ! in_stream.eof( ) )

n Which should be used?n In general, use eof when input is treated as

text and using a member function get to read input

n In general, use the extraction operator method when processing numeric data

Slide 6- 85

Page 86: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Program Example:Editing a Text File

n The program of Display 6.8…n Reads every character of file cad.dat and copies it to

file cplusad.dat except that every 'C' is changed to"C++" in cplusad.dat

n Preserves line breaks in cad.datn get is used for input as the extraction operator would skip

line breaksn get is used to preserve spaces as well

n Uses eof to test for end of file

Slide 6- 86

Display 6.8 (1)Display 6.8 (2)

Page 87: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Character Functions

n Several predefined functions exist to facilitate working with characters

n The cctype library is requiredn #include <cctype>

using namespace std;

Slide 6- 87

Page 88: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

The toupper Function

n toupper returns the argument's upper case character n toupper('a') returns 'A'n toupper('A') return 'A'

Slide 6- 88

Page 89: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

toupper Returns An int

n Characters are actually stored as an integer assigned to the character

n toupper and tolower actually return the integerrepresenting the charactern cout << toupper('a'); //prints the integer for 'A'n char c = toupper('a'); //places the integer for 'A' in c

cout << c; //prints 'A'n cout << static_cast<char>(toupper('a')); //works too

Slide 6- 89

Page 90: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

The isspace Function

n isspace returns true if the argument is whitespacen Whitespace is spaces, tabs, and newlinesn isspace(' ') returns truen Example: if (isspace(next) )

cout << '-';else

cout << next;n Prints a '-' if next contains a space, tab, or

newline charactern See more character functions in

Slide 6- 90

Display 6.9 (1)Display 6.9 (2)

Page 91: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Section 6.3 Conclusion

n Can youn Write code that will read a line of text and echo

the line with all the uppercase letters deleted?

n Describe two methods to detect the end of an input file:

n Describe whitespace?

Slide 6- 91

Page 92: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Chapter 6 -- End

Slide 6- 92

Page 93: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Display 6.1

Slide 6- 93

Back Next

Page 94: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Display 6.2

Slide 6- 94

Back Next

Page 95: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Display 6.3

Slide 6- 95

Back Next

Page 96: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Display 6.4 (1/2)

Slide 6- 96

Back Next

Page 97: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Display 6.4 (2/2)

Slide 6- 97

Back Next

Page 98: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Display 6.5

Slide 6- 98

Back Next

Page 99: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Display 6.6 (1/3)

Slide 6- 99

Back Next

Page 100: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Display 6.6 (2/3)

Slide 6- 100

Back Next

Page 101: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Display 6.6(3/3)

Slide 6- 101

Back Next

Page 102: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Display 6.7 (1/2)

Slide 6- 102

Back Next

Page 103: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Display 6.7 (2/2)

Slide 6- 103

Back Next

Page 104: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Display 6.8 (1/2)

Slide 6- 104

NextBack

Page 105: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Display 6.8 (2/2)

Slide 6- 105

Back Next

Page 106: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Display 6.9(1/2)

Slide 6- 106

Back Next

Page 107: Savitch ch 06 - American University in Cairorafea/CSCE106/SlidesTextBook/Savitch_ch_06.pdfCopyright © 2015 Pearson Education, Ltd.. All rights reserved. Streams and Basic File I/O

Copyright © 2015 Pearson Education, Ltd.. All rights reserved.

Display 6.9 (2/2)

Slide 6- 107

Back Next