0% found this document useful (0 votes)
49 views

C++: I/O and Classes: Engineering H192 - Computer Programming

This document discusses input and output (I/O) streams and classes in C++. It introduces the cin and cout I/O objects for keyboard input and screen output, which can be used with extraction and insertion operators. Examples are provided to demonstrate using cin and cout to read input from and display output to the user. The document also defines classes in C++, including data members, member functions, and the public and private access specifiers. An example class is shown to represent numbers with attributes like name, integer, and float values.

Uploaded by

Sumant Luhar
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
49 views

C++: I/O and Classes: Engineering H192 - Computer Programming

This document discusses input and output (I/O) streams and classes in C++. It introduces the cin and cout I/O objects for keyboard input and screen output, which can be used with extraction and insertion operators. Examples are provided to demonstrate using cin and cout to read input from and display output to the user. The document also defines classes in C++, including data members, member functions, and the public and private access specifiers. An example class is shown to represent numbers with attributes like name, integer, and float values.

Uploaded by

Sumant Luhar
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 22

Engineering H192 - Computer Programming

C++: I/O and Classes

Lecture 25

Winter Quarter

Gateway Engineering Education Coalition

Lect 25

P. 1

Engineering H192 - Computer Programming

Keyboard & Screen I/O in C++


It is perfectly valid to use the same I/O statements in C++ as in C -- The very same printf, scanf, and other stdio.h functions that have been used until now. However, C++ provides an alternative with the new stream input/output features. The header file is named iostream and the stream I/O capabilities are accessible when you use the pre-processor declaration: #include <iostream> // No .h on std headers using namespace std; // To avoid things like // std::cout and std::cin
Winter Quarter Gateway Engineering Education Coalition Lect 25 P. 2

Engineering H192 - Computer Programming

Keyboard & Screen I/O in C++


Several new I/O objects available when you include the iostream header file. Two important ones are: cin cout // Used for keyboard input (std::cin) // Used for screen output (std::cout)

Both cin and cout can be combined with other member functions for a wide variety of special I/O capabilities in program applications.
Winter Quarter Gateway Engineering Education Coalition Lect 25 P. 3

Engineering H192 - Computer Programming

Keyboard & Screen I/O in C++


Since cin and cout are C++ objects, they are somewhat "intelligent": They do not require the usual format strings and conversion specifications. They do automatically know what data types are involved. They do not need the address operator, &. They do require the use of the stream extraction ( >> ) and insertion ( << ) operators. The next slide shows an example of the use of cin and cout.
Winter Quarter Gateway Engineering Education Coalition Lect 25 P. 4

Engineering H192 - Computer Programming

#include <iostream> using namespace std;

Example using cin and cout


// replace every cin and cout // with std::cin and std::cout // without this line

int main ( ) { int a, b; float k; char name[30]; cout << "Enter your name\n" ; cin >> name ; cout << "Enter two integers and a float\n" ; cin >> a >> b >> k ; cout << "Thank you, " << name << ", you entered\n " ; cout << a << ", " << b << ", and " << k << '\n' ; }
Winter Quarter Gateway Engineering Education Coalition Lect 25 P. 5

Engineering H192 - Computer Programming

Example Program Output

Enter your name Rick Enter two integers and a float 20 30 45.67 Thank you, Rick, you entered 20, 30, and 45.67

Winter Quarter

Gateway Engineering Education Coalition

Lect 25

P. 6

Engineering H192 - Computer Programming

Input Stream Object Member Functions


cin.getline (array_name, max_size) ;
Example: char name[40] ; cin.getline (name, 40); // gets a string from // keyboard and assigns // to name

Winter Quarter

Gateway Engineering Education Coalition

Lect 25

P. 7

Engineering H192 - Computer Programming

Classes in C++
Classes enable a C++ program to model objects that have: attributes (represented by data members). behaviors or operations (represented by member functions). Types containing data members and member function prototypes are normally defined in a C++ program by using the keyword class.

Winter Quarter

Gateway Engineering Education Coalition

Lect 25

P. 8

Engineering H192 - Computer Programming

Classes in C++
A class definition begins with the keyword class. The body of the class is contained within a set of braces, { } ; (notice the semi-colon). Within the body, the keywords private: and public: specify the access level of the members of the class. Classes default to private. Usually, the data members of a class are declared in the private: section of the class and the member functions are in public: section. Private members of the class are normally not accessible outside the class, i.e., the information is hidden from "clients" outside the class.
Winter Quarter Gateway Engineering Education Coalition Lect 25 P. 9

Engineering H192 - Computer Programming

Classes in C++
A member function prototype which has the very same name as the name of the class may be specified and is called the constructor function. The definition of each member function is "tied" back to the class by using the binary scope resolution operator ( :: ). The operators used to access class members are identical to the operators used to access structure members, e.g., the dot operator (.).
Winter Quarter Gateway Engineering Education Coalition Lect 25 P. 10

Engineering H192 - Computer Programming

Classes Example
#include <iostream> #include <cstring> // This is the same as string.h in C using namespace std; class Numbers // Class definition { public: // Can be accessed by a "client". Numbers ( ) ; // Class "constructor" void display ( ) ; void update ( ) ; private: // Cannot be accessed by "client" char name[30] ; int a ; float b ; };
Winter Quarter Gateway Engineering Education Coalition Lect 25 P. 11

Engineering H192 - Computer Programming

Classes Example (continued)


Numbers::Numbers ( ) // Constructor member function { strcpy (name, "Unknown") ; a = 0; b = 0.0; } void Numbers::display ( ) // Member function { cout << "\nThe name is " << name << "\n" ; cout << "The numbers are " << a << " and " << b << endl ; }
Winter Quarter Gateway Engineering Education Coalition Lect 25 P. 12

Engineering H192 - Computer Programming

Classes Example (continued)


void Numbers::update ( ) // Member function { cout << "Enter name" << endl ; cin.getline (name, 30) ; cout << "Enter a and b" << endl ; cin >> a >> b; }

Winter Quarter

Gateway Engineering Education Coalition

Lect 25

P. 13

Engineering H192 - Computer Programming

Classes Example (continued)


int main ( ) { Numbers no1, no2 ; // Main program // Create two objects of // the class "Numbers" // Update the values of // the data members // Display the current // values of the objects
Gateway Engineering Education Coalition Lect 25 P. 14

no1.update ( ) ;

no1.display ( ) ; no2.display ( ) ;

}
Winter Quarter

Engineering H192 - Computer Programming

Example Program Output


r1tel (~) freuler 53> example.out

The name is Rick Freuler The numbers are 9876 and 5.4321 The name is Unknown The numbers are 0 and 0

Winter Quarter

Gateway Engineering Education Coalition

Lect 25

P. 15

Engineering H192 - Computer Programming

More Detailed Classes Example


#include <iostream> #include <cstring> using namespace std; class Numbers // Class definition { public: Numbers (char [ ] = "Unknown", int = 0, float = 0.0) ; void display ( ) ; void update ( ) ; private: char name[30]; int a; float b; };
Winter Quarter Gateway Engineering Education Coalition Lect 25 P. 16

Engineering H192 - Computer Programming

More Detailed Classes Example (continued)


Numbers::Numbers (char nm[ ], int j, float k ) { strcpy (name, nm) ; a=j; b=k; } void Numbers::update ( ) { cout << "Enter a and b" << endl ; cin >> a >> b ; }
Winter Quarter Gateway Engineering Education Coalition Lect 25 P. 17

Engineering H192 - Computer Programming

More Detailed Classes Example (continued)


void Numbers::display( ) { cout << "\nThe name is " << name << '\n' ; cout << "The numbers are " << a << " and " << b << endl ; } int main ( ) { Numbers no1, no2 ("John Demel", 12345, 678.9); no1.display ( ) ; no2.display ( ) ; }
Winter Quarter Gateway Engineering Education Coalition Lect 25 P. 18

Engineering H192 - Computer Programming

More Detailed Example Program Output


r1rhl (~) freuler 76> example.out The name is Unknown The numbers are 0 and 0 The name is John Demel The numbers are 12345 and 678.9

Winter Quarter

Gateway Engineering Education Coalition

Lect 25

P. 19

Engineering H192 - Computer Programming

Some Help for G23


Use #include <iostream> using namespace std;

When using these, use the following compile command g++ o g23.out g23.cpp

Winter Quarter

Gateway Engineering Education Coalition

Lect 25

P. 20

Engineering H192 - Computer Programming

Some Guidance on G23


class Complex { private: float fReal; float fImag; public: Complex(); // Constructor function prototype void mult(_______); // rest of function prototypes };

What goes here?

Winter Quarter

Gateway Engineering Education Coalition

Lect 25

P. 21

Engineering H192 - Computer Programming

Hints on Multiplying Complex Numbers


For the function void Complex::mult (Complex imag_n) { // you need to use the distributive property! // (a + b*i)*(c + d*i) = (a*c b*d) + (b*c + a*d)*i // real part + i imag part }

Winter Quarter

Gateway Engineering Education Coalition

Lect 25

P. 22

You might also like