This document discusses programming fundamentals covered in Lecture 4. It covers manipulators like setw() and setfill() for modifying output formatting. It also discusses data type conversions, including automatic conversions between compatible types and explicit casts for incompatible types, focusing on static_cast. Finally, it discusses cascading the << and >> operators to output or input multiple values on a single line.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
64 views17 pages
Basic C++
This document discusses programming fundamentals covered in Lecture 4. It covers manipulators like setw() and setfill() for modifying output formatting. It also discusses data type conversions, including automatic conversions between compatible types and explicit casts for incompatible types, focusing on static_cast. Finally, it discusses cascading the << and >> operators to output or input multiple values on a single line.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17
Programming Fundamentals
Lecture 4 Objectives • To know about manipulators • setw() and setfill() manipulator • To know about Data type conversions • To know about casts • Cascading of << and >> operators
Course Instructor : Muhammad Haris
CS214 - PF 2 Mohsin Review Problem 1 • What will be the output of following piece of code?
Done in Class, Have a
look at your lecture notes
Course Instructor : Muhammad Haris
CS214 - PF 3 Mohsin Review Problem 2 • Write a code in C++ which will ask the user to enter his/her age in days and then show the age in Years, Months and Days. • For simplicity you may suppose that there are 30 days in each month
Course Instructor : Muhammad Haris
CS214 - PF 4 Mohsin Manipulators • Manipulators are instructions to the output stream that modify the output in various ways • The commonly used manipulators are endl, setw() and setfill() • endl – endl manipulator terminates the line • setw() – setw() manipulator changes the field width of output • setfill() – setfill() manipulator fills the empty spaces of output with a specific character Course Instructor : Muhammad Haris CS214 - PF 5 Mohsin setw() Manipulator • setw() manipulator accept an integer argument and display the text in that specified length • We can change the alignment of the text to left or right • The default alignment is right • We need to add the header file named iomanip to use setw() manipulator • Have a look at the example for more details of setw() manipulator
Course Instructor : Muhammad Haris
CS214 - PF 6 Mohsin setfill() Manipulator • setfill() manipulator accept a character as an argument and fills the blank spaces with that particular character • For example the following line cout<<setfill(‘.’)<<left<<setw(10)<<“Name”<<endl; • Will print the following Name……
Course Instructor : Muhammad Haris
CS214 - PF 7 Mohsin Practice Problem • Print the following message on screen Name Age Savings Ali 18 500 Usman 15 500 Sharjeel 22 1500
• Modify your code to fill the empty spaces with
dashes (-) • Solution is on next slide
Course Instructor : Muhammad Haris
CS214 - PF 8 Mohsin Practice Problem (Solution)
Course Instructor : Muhammad Haris
CS214 - PF 9 Mohsin Type Conversions • Unlike many other programming languages C++ allows the expressions containing mixed data types • When we add several data types in a single expression, the C++ compiler converts the data types to a common one, and this process is called type conversion • The type conversions may happen in two different ways – Automatic conversions – Conversions through casts
Course Instructor : Muhammad Haris
CS214 - PF 10 Mohsin Automatic Data Type Conversions • When we mix two or more different data types in an expression the data type with the lowest order is converted into the data type of highest order (this is called implicit conversion) • Automatic conversions only work for built-in data types
Course Instructor : Muhammad Haris
CS214 - PF 11 Mohsin Casts in C++ • Implicit conversions are automatically performed when a value is copied to a compatible type • If we want to copy the value to a non-compatible type then we convert its type by using casts • There are several casts in C++ like – Static cast – Dynamic cast – Reinterpret cast – Constant cast • For the time being we will focus only on static cast Course Instructor : Muhammad Haris CS214 - PF 12 Mohsin Static Cast • In C++ type conversion, the static_cast operator performs an explicit type conversion • All types of conversions that are well-defined and allowed by the compiler are performed using static_cast • The static_cast operator can be used for operations such as: – Converting a pointer of a base class to a pointer of a nonvirtual derived class – Converting numeric data types such as int to float or float to double
Course Instructor : Muhammad Haris
CS214 - PF 13 Mohsin Syntax of Static_Cast • The syntax of using static_cast is static_cast<new_type>(expression) • For example the following expression will convert the int x to a character, and assign the converted value to a character int x = 65; char a; a = static_cast<char>(x);
• The traditional type-casting equivalents to above
expressions would be: (new_type) expression; // a = (char)x; new_type(expression); // a = char(x);
Course Instructor : Muhammad Haris
CS214 - PF 14 Mohsin Benefits of Static_Cast • There are several advantages of using static_cast and its syntax – We can convert between non-built-in data types – The implicit conversions are hard to see and hard to search, so it is too difficult to find the possible errors due to type conversions – By using new syntax we make sure that we are deliberately changing the data type and it is not a logical error
Course Instructor : Muhammad Haris
CS214 - PF 15 Mohsin Practice Problem • Write a code which should ask the user to enter a character and display its equivalent ASCII code
Course Instructor : Muhammad Haris
CS214 - PF 16 Mohsin Cascading in cout and cin • We have already seen that we can cascade the stream operator << in any C++ program, like int a = 10, b = 20, c = 30; cout<<a<<‘\t’<<b<<‘\t’<<c<<endl;
• Similarly we can cascade the >> operator as well
• The cascaded >> operator works for mixed data types, or we introduce dummy characters to such mixing • The benefit of cascading >> operator is, there will be no need to press the Enter key after typing every input • Have a look at the example for more clear understanding Course Instructor : Muhammad Haris CS214 - PF 17 Mohsin