Input/Output Design - Physical design of output reports and input forms.
cpp input & output system basics
-
Upload
gourav-kottawar -
Category
Education
-
view
215 -
download
0
Transcript of cpp input & output system basics
![Page 1: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/1.jpg)
Managing Console I/O Operations
Chap 10
1By:-Gourav Kottawar
![Page 2: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/2.jpg)
Contents
• 10.1 C++ Streams, C++ Stream Classes • 10.2 Unformatted I/O Operation • 10.3 Formatted I/O Operation • 10.4 Managing Output with Manipulators
2By:-Gourav Kottawar
![Page 3: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/3.jpg)
Managing Console I/O Operations
• C++ uses the concept of stream and stream classes to implement its I/O operations with the console and disk files.
• C++ support all of C’s rich set of I/O functions.
3By:-Gourav Kottawar
![Page 4: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/4.jpg)
C ++ Stream• Stream is an interface supplied by the I/O
system of C++ between the programmer and the actual device being accessed.
• It will work with devices like terminals, disks and tape drives.
• A stream is a sequence of bytes.• It acts either as a source from which the input
data can be obtained or as a destination to which the output data can be sent.
4By:-Gourav Kottawar
![Page 5: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/5.jpg)
C ++ Stream• Input Stream - The source stream that provides data
to the program.
• Output Stream - The destination stream that receives output from the program.
continue…
Input device
Output device
Program
Input Stream
Output Stream
Extraction from input stream
Insertion into output stream
5By:-Gourav Kottawar
![Page 6: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/6.jpg)
C ++ Stream• The data in the input stream can come from
keyboard or any other storage device.
• The data in the output stream can go to the screen or any other storage device.
continue…
Input device
Output device
Program
Input Stream
Output Stream
Extraction from input stream
Insertion into output stream
6By:-Gourav Kottawar
![Page 7: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/7.jpg)
C ++ Stream Classes• The C++ I/O system contains a hierarchy of
classes that are used to define various streams to deal with both the console and disk files.
• These classes are called stream classes.
• These classes are declared in the header file iostream.
7By:-Gourav Kottawar
![Page 8: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/8.jpg)
C ++ Stream Classesios
istream ostreamstreambuf
iostream
istream_withassign iostream_withassign ostream_withassign
continue…
8By:-Gourav Kottawar
![Page 9: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/9.jpg)
C ++ Stream Classesios
istream ostreamstreambuf
iostream
istream_withassign iostream_withassign ostream_withassign
continue…Provides the basic
support for formatted and unformatted I/O
operations.
Provides the facilities for formatted and unformatted input
Provides the facilities for
formatted outputProvides the facilities for handling both input and output streams.
9By:-Gourav Kottawar
![Page 10: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/10.jpg)
Unformatted I/O OperationsOverloaded Operators >> and <<• The objects cin and cout are used for input
and output of data of various types.• By overloading the operators >> and <<.• >> operator is overloaded in the istream class.• << operator is overloaded in the ostream
class.• This is used for input data through keyboard.
10By:-Gourav Kottawar
![Page 11: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/11.jpg)
Unformatted I/O OperationsOverloaded Operators >> and <<
cin >> variable1 >> varibale2 ... >> variableNwhere variable1, variable2, …, variableN are valid C++
variable names.
cout << item1 << item2 << … << itemNWhere item1, item2, …,itemN may be variables or
constants of an basic type.
11By:-Gourav Kottawar
![Page 12: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/12.jpg)
Unformatted I/O Operationsput( ) and get( ) Functions• get( ) and put( ) are member functions of
istream and ostream classes.• For single character input/output operations.• There are two types of get( ) functions:
– get(char*) Assigns the input character to its argument.
– get(void) Returns the input character.• char c; cin.get(c) c = cin.get( );
– put( ) used to output a line of text, character by character.
• char c; cout.put(‘x’); cout.put(c);
12By:-Gourav Kottawar
![Page 13: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/13.jpg)
#include<iostream.h>int main(){
int i =0;char ch;cout<<“\n Enter data”;cin.get(ch);while(ch!=‘\n’){cout.put(ch);i++;cin.get(ch);}cout<<“\n Number of characters =“<<I;
}
13By:-Gourav Kottawar
![Page 14: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/14.jpg)
#include<iostream.h>int main(){
int i =0;char ch;cout<<“\n Enter data :”;cin.get(ch);while(ch!=‘\n’){cout.put(ch);i++;cin.get(ch);}cout<<“\n Number of characters =“<<I;
}
Output :Enter data : Applying thoughtApplying thoughtsNumber of characters : 17
14By:-Gourav Kottawar
![Page 15: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/15.jpg)
Unformatted I/O Operationsgetline( ) and write( ) Functions• getline( ) function reads a whole line of text
that ends with a newline character.• cin.getline(line, size);• Reading is terminated as soon as either the
newline character ‘\n’ is encountered or size-1 characters are read.
• write( ) function displays an entire line of text.
• cout.write(line, size);• write( ) also used to concatenate strings.
15By:-Gourav Kottawar
![Page 16: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/16.jpg)
#include<iostream.h>int size = 10;int main(){
char name[10];cout<<“\n Can I know u r name :”;cin>>name;cout<<“Name : “<<name;
cout<<“\n Come again :”;cin.getline(name,size);cout<<“Name :- “<<name;
}
16By:-Gourav Kottawar
![Page 17: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/17.jpg)
#include<iostream.h>int main(){
char *s1=“Object”;char *s2=“Oriented”;int a=strlen(s1); int b=strlen(s2);for(int i=0;i<b;i++){
cout.write(s2,i);cout<<“\n”;
}for(i=b;i>0;i--){
cout.write(s2,i);cout<<“\n”;}
// concatenationcout.write(s1,a).write(s2,b);cout<<“\n”;cout.write(s1,10);
}17By:-Gourav Kottawar
![Page 18: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/18.jpg)
Formatted Console I/O Operations
C++ supports a number of features that could be used for formatting the output.These features include:
– ios class functions and flags.– Manipulators.– User-defined output functions.
18By:-Gourav Kottawar
![Page 19: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/19.jpg)
ios member functions
width( ) to specify the required field size for displaying an output value.
precision( ) to specify the number of digits to be displayed after the decimal point of a float value.
fill( ) to specify a character that is used to fill the unused portion of a field.
setf( ) to specify format flags that can control the form of output display.
unsetf( ) to clear the flags specified.
19By:-Gourav Kottawar
![Page 20: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/20.jpg)
20By:-Gourav Kottawar
![Page 21: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/21.jpg)
21By:-Gourav Kottawar
![Page 22: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/22.jpg)
int main(){
int a[4] = {1,2,3,4};int c[4]={10,20,30,40};cout.width(5);cout<<“Items “;cout.width(8);cout<<“Cost”;cout.width(15);cout<“Total “;int sum=0;for(i=0;i<4;i++){
cout.width(5);cout<<a[i];cout.width(8);cout<<c[i];int val=a[i]*c[i];cout.width(15);cout<<value<<endl;sum=sum+val;
}cout<<“\n Grand Total “;
cout.width(2);cout<<sum<<“\n”;}
22By:-Gourav Kottawar
![Page 23: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/23.jpg)
int main(){
int i[4] = {1,2,3,4};int c[4]={10,20,30,40};cout.width(5);cout<<“Items “;cout.width(8);cout<<“Cost”;cout.width(15);cout<“Total “;int sum=0;for(i=0;i<4;i++){
cout.width(5);cout<<i[i];cout.width(8);cout<<c[i];int val=i[i]*c[i];cout.width(15);cout<value>endl;sum=sum+val;
}cout<<“\n Grand Total “;
cout.width(2);cout<<sum<<“\n”;}
Output :Items Cost Total110 10220 40330 90440 160Grand total = 300
23By:-Gourav Kottawar
![Page 24: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/24.jpg)
#include<iostream.h>#include<math.h>int main(){
cout.precision(3); // 3 digit precisioncout.width(10);cout<<“value”;cout.width(15);cout<<“Sqrt of value “<<“\n;for(int i=1;i<=5;i++){cout.width(8);cout<<“\n”;cout.width(13);cout<<sqrt(i); cout<<“\n”;cout.precision(5); // 5 digits precisioncout<<“Sqrt(10) = “<<sqrt(10)<<“\n”;cout.precision(0); // default settingcout<<“Sqrt(10) =“ << sqrt(10) “ (default setting)\n”;}
}
24By:-Gourav Kottawar
![Page 25: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/25.jpg)
ManipulatorsManipulators are special functions that can be included in the I/O statement to alter the format parameters of a stream.
To access manipulators, the file iomanip.h should be included in the program.
– setw( )– setprecision( )– setfill( )– setiosflags( )– resetiosflags( )
25By:-Gourav Kottawar
![Page 26: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/26.jpg)
width( ) Defining Field WidthTo define the width of a field necessary for the output of an item.Since it is a member function, we have to use an object to invoke it.
cout.width(w)Where w is the field width (number of columns).The output will be printed in a field of w characters wide at the right end of the field.
26By:-Gourav Kottawar
![Page 27: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/27.jpg)
width( ) Defining Field WidthThe width( ) function can specify the field width for only one item – item that follows immediately.cout.width(5);cout << 543 << 12 <<“\n”;
cout.width(5);cout << 543;cout.width(5);cout << 12 << “\n”;
5 4 3 1 2
5 4 3 1 2
The field should be specified for each item separately.
27By:-Gourav Kottawar
![Page 28: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/28.jpg)
precision( ) Setting Precision
• Used to specify the number of digits to be displayed after the decimal point while printing the floating-point numbers.
• By default, the floating numbers are printed with six digits after the decimal point.
• cout.precision(d);– Where d is the number of digits to the right of the decimal
point.cout.precision(3);cout << sqrt(2) << endl;cout << 3.14159 << endl;cout <<2.50032 << endl;
1.141 truncated3.142 rounded2.5 o trailing zeros
28By:-Gourav Kottawar
![Page 29: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/29.jpg)
precision( ) Setting Precision• Unlike width( ), precision ( ) retains the setting
in effect until it is reset.
• We can also combine the field specification with the precision setting.
cout.precision(2);cout.width(5);cout << 1.2345;
1 . 2 3
29By:-Gourav Kottawar
![Page 30: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/30.jpg)
fill( ) Filling and Padding• When printing values with larger field width
than required by the values, the unused positions of the field are filled with white spaces, by default.
• fill( ) function can be used to fill the unused positions by any desired character.
cout.fill(ch);where ch represents the character which is used for filling the unused positions.
cout.fill(‘ * ’);cout.wdith(10);cout << 5250 << endl;
* * * * * 5 05 2*
Like precision( ), fill( ) stays in effect till we change it.
30By:-Gourav Kottawar
![Page 31: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/31.jpg)
setf( ) Formatting Flags, Bit-fields• When the function width( ) is used, the value
will be printed right-justified in the created width.
• setf( )function is used to print values in left-justified.
• cout.setf(arg1, arg2)eg: cout.fill(‘ * ’);
cout.setf(ios :: left, ios :: adjustfield);cout.wdith(10);cout << “TABLE 1” << endl;
T A B L E * *1 *
arg1 is formatting flags defined in the class ios and arg2 is bit field constant in
the ios class.
31By:-Gourav Kottawar
![Page 32: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/32.jpg)
setf( ) Formatting Flags, Bit-fields
• When the function width( ) is used, the value will be printed right-justified in the created width.
• setf( )function is used to print values in left-justified.
• cout.setf(arg1, arg2)eg: cout.fill(‘ * ’);
cout.setf(ios :: left, ios :: adjustfield);cout.wdith(10);cout << “TABLE 1” << endl;
T A B L E * *1 *
arg1 is formatting flags defined in the class ios and arg2 is bit field constant in
the ios class.
The formatting flag specifies the format action
required for the output.
Bit field specifies the group to which the
formatting flag belongs.
32By:-Gourav Kottawar
![Page 33: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/33.jpg)
Managing Output with Manipulators• The header file iomanip provides a set of
functions called manipulators which can be used to manipulate the output formats.
• Some manipulators are more convenient to use than the member functions and flags of ios.
• Two or more manipulators can be used as a chain in one statement.
cout << manip1 << manip2 << maip3 << item;cout << manip1 << item1 << manip2 << item2;
33By:-Gourav Kottawar
![Page 34: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/34.jpg)
Managing Output with Manipulators
• Manipulators and their meanings
cout << setw(5) << setprecision(2) << 1.2345 << setw(10) << setprecision(4) << sqrt(2);
• We can jointly use the manipulators and the ios functions in a program.
Manipulators Meaning Equivalent
setw(int w) Set the field width to w width( )
setprecision(int d) Set floating point precision to d precision( )
setfill( int c) Set the fill character to c fill( )
34By:-Gourav Kottawar
![Page 35: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/35.jpg)
Manipulators & ios Member Functions
• The ios member function return the previous format state which can be used later.
• But the manipulator does not return the previous format state.
cout.precision(2); // previous state.
int p =cout.precision(4); // current state, p=2.
cout.precision(p); // change to previous state
35By:-Gourav Kottawar
![Page 36: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/36.jpg)
Designing Our Own Manipulators
• We can design our own manipulators for certain special purposes.
ostream & manipulator ( ostream & output){
……… (code)return output;
}ostream & unit (ostream & output){
output << “inches”;return output;
}cout << 36 << unit; will produce “36 inches”.
36By:-Gourav Kottawar
![Page 37: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/37.jpg)
Designing Our Own ManipulatorsWe can also create manipulators that could represent a sequence of operations:ostream & show (ostream & output){ output.setf(ios::showpoint); output.setf(ios::showpos); output << setw(10); return output;}This function defines a manipulator called show that turns on the flags showpoint and showpos declared in the class ios and sets the field width to 10.
37By:-Gourav Kottawar
![Page 38: cpp input & output system basics](https://reader035.fdocuments.us/reader035/viewer/2022062823/586fa29b1a28abcc238b6fbb/html5/thumbnails/38.jpg)
Thank You
38By:-Gourav Kottawar