CSC-335 Data Structures and Algorithms

Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

CSC-335 Data Structures and Algorithms (Chapter 5 Standard C++ Input/Output and String Classes)

The content of this power point lecture has been originally created by Christos Kolonis and modified by Dr. Ahmad R Hadaegh
1

Chapter Contents
The C++ Standard I/O Classes The C++ String Types

Introduction to Data Encryption (optional)

The C++ Standard I/O Classes


Input viewed as a stream of characters Flowing from some source into an executing program

Output is also viewed as a stream of characters Flowing from program to output device

The C++ Standard I/O Classes


C++ has <iostream> library istream for input

ostream for output

The istream Class


Models flow of characters from input device to program
Characters enter an istream object Object transmits characters from device to program

Input operator >>


Extraction operator istreamObject >> variable;

Stream states accessed with functions


.good(), .bad(), .fail(), .eof()

The istream Class


Input manipulators
Specify whether or not to skip white space noskipws or skipws

Note Table 5-2 in text for Input Stream Operations and Methods

The ostream Class


Models flow of characters from executing program to output device
Characters enter ostream object
Transmitted to specified output device

Output operator <<


Insertion operator ostreamObject << expression;

Note Table 5-3 in text for Output Stream Operations and Methods

The ostream Class

Standard ostream objects cout for normal output cerr and clog for error
and diagnostic messages

Buffered streams (cout and clog)


Held in the stream until it is flushed

Contrast cerr which is sent to the output device immediately


8

The ostream Class


Format control
Format manipulators used to specify various format features

Examples endl to send a newline showpoint to specify that decimal points be used in
output of reals

Note Table 5-4 in text, Format Manipulators


9

File I/O: ifstream, ofstream Classes

Stream object must be constructed for purpose of receiving/sending I/O


Called opening a stream to the file

Stream activities
Declaring ifstream fileInput; Opening fileInput.open(file_name); Closing fileInput.close();

10

File I/O: ifstream, ofstream Classes

File opening modes


specify various properties of file being opened

Examples
input, output, append.

Note Table 5-5 in text, File-Opening Modes

11

The I/O Class Hierarchy

12

The C++ String Class


Variety of constructors provided for defining strings
Define an empty string string s; Define a string initialized with another string string s = "some other string";

Note further options in text, Table 5-7 String Constructors

13

The C++ String Class


Storage differs by implementation
May use char arrays

May use dynamic storage

Note Table 5-8 in text, String Storage Information Methods Input and output
Use insertion << and extraction >> operators getline () for reading a string and including white spaces

14

The C++ String Class


Editing operations provided such as
Appending

inserting erasing replacing

Note table 5-10 in text, String Editing Operations

15

The C++ String Class


Copiers make copies of part or all of a string
Operators = and += s1 = s2 s1 += s2; // this means s1 = s1 + s2

Accessing Individual Characters


Use overloaded subscript operator [ ]

String element assessors


Functions such as find(), find_first_of()

See Table 5-12 in text


16

The C++ String Class


Comparisons
Overloaded operators for <, >, ==, etc.

Also compare() function which returns a negative, 0, or positive value for <, ==, or >

String conversions
When C-style string needed instead of a string object Converts to an array of char

17

Intro to Data Encryption


Definition: Encryption is the coding of information to keep it secret

Accomplished by transforming
From a string of characters with information To a new string that is the coded message or the ciphertext

The ciphertext may be safely transmitted At a later time the ciphertext is deciphered into plaintext

18

Data Encryption
Simplest encryption schemes use substitution
Each letter replaced by some other letter according to a fixed rule

19

Data Encryption
Improved substitution method is to use a keyword
Specifies several different displacements

Vignre cipher
Keyword added character by character to plane text string Each character represented by position in the string Addition carried out modulo 26

20

Vignre Cipher

Example Character set, positions given by Keyword is DAGGER Plane text IDESOFMARCH thus encrypted

21

Substitution Table
Table of substitutions given

Resulting cipher text is

22

Data Encryption Standard (DES)


Developed by federal government and IBM corporation in 1970s
Input is a 64 bit string representing a block of characters Output string also 64 bit string of cipher text for the block Encryption done with series of permutations and substitutions

Was proven to be breakable Replaced in 1999 by Advanced Encryption Standard (AES)


23

Public-Key Encryption
Both sender and receiver must know key
Must be transmitted in some secure manner

Public-key encryption uses two keys


One for encryption, exactly one corresponding key for decryption Many such pairs of keys exist, easily computed Nearly impossible to determine decryption key knowing only encryption key Encryption key made public, only receiver knows decryption key

24

You might also like