Input/Output

advertisement
CPS120: Introduction to
Computer Science
INPUT/OUTPUT
Input/Output Structures
In our pseudocode algorithms we have
used the expressions Read and Write
or Prompt
High-level languages view input data as
a stream of characters divided into lines
Input/Output Structures
The key to the processing is in the data
type that determines how characters are
to be converted to a bit pattern (input)
and how a bit pattern is to be converted
to characters (output)
Console I/O
console I/O refers to using the keyboard
and screen as the standard input and output
devices, respectively.
C-In (cin)
cin is a stream of data flowing from an
input device such as the keyboard
(considered to be the standard input
device) into your program.
Input Operations
The operator >> is known as the input
operator. It is also known as the
extraction operator
You use the input operator in
statements like,
cin >> numItems;
which would allow the user to input a
value to be stored in the variable
numItems.
Multiple Input
cin to allows the user to input several items
with one C++ statement. The user however
must type one or more spaces between each
separate inputted value
Example:
cin >> value1 >> value2 >> value3;
Inputs need to have spaces or tabs between
them (can’t use a comma to delimit C++)
However, this prevents you from properly
giving the user individual prompt messages
Output Operations
The operator << is known as the output
operator. It is also known as the insertion
operator
You use the output operator in statements
like:
cout << "Hello world";
C-Out (cout)
cout is a stream which represents data
flowing from one place to another.
The statement:
cout << "Hello world";
causes data to flow from your program to the
screen.
The stream, cout, leads to what your
computer considers to be its standard output
device (usually the screen)
Menus and Prompting
// Prompt for values
cout << "What was your beginning mileage? ";
cin >> StartingMileage;
cout << "What was your ending mileage? ";
cin >> EndingMileage;
cout << "How many gallons of gas did you use? ";
cin >> GallonsOfGas;
cout << "How much did one gallon of gas cost? ";
cin >> PriceOfGas;
Inputting Words
>> can be used but once it hits a space or
a tab, the rest of the string is ignored
Use the get function for strings that contain
‘white space’

String ends when you press enter
Complexities of Word Input
Some things are done automatically with >>

get does not skip over line breaks and spaces
If the user enters a string longer than the
length specified in the call to the get function,
the remaining characters are left in the input
stream
Get always ignores the new line character
(‘\n’) and leaves it in the stream
Use the ignore function to flush the contents
of the input stream
cin.ignore(80, ‘\n’);
Line Spacing
In order to end a line in an output statement
you may use the new line character, \n,
instead of endl.
Examples:
cout << "Hello world" << '\n';
cout << "Hello world" << "\n";
cout << "Hello world\n";
These are practically equivalent to:
cout << "Hello world" << endl;
Escape Sequences
Other useful "escape sequences" (since
the \ is the escape operator) are:
\t to generate a tab
\\ to print a backslash
\' to print a single quote
\" to print a double quote
Using setf and unsetf
Each stream has format options that can be
changed
OPTION
DESCRIPTION
left
right
showpoint
uppercase
showpos
scientific
fixed
Left-justifies the output
Right-justifies the output
Displays decimal point and trailing zeros for
floats
Displays e in scientific as E
Displays a leading plus sign
Displays floating point number scientifically
Displays floating-point in normal notation
Using Format Options
Format options are set immediately
prior to the COUT statement
float x = 24.0;
cout << x << ‘\n’; // displays 24
cout.setf(ios::showpoint);
cout << x << ‘\n’; // displays 24.00000
cout.unsetf(ios::showpoint);
cout << x << ‘\n’; // displays 24
Using Manipulators
You must include the <iomanip.h> header file at
the top of your program in order to use the
setprecision, setw, and other manipulators. You
must use place the following compiler directive at
the top of your program.
#include <iomanip.h>
I/O manipulators are placed directly in the output
statement
cout << setprecision(2) << price << ‘\n’;
Setting Precision
The setprecision manipulator allows you to
limit the number of digits that are displayed
when a numeric data type is displayed:
cout << setprecision(2) << price << '\n';
only allows the leading two digits of the value
stored in the variable, price, to be displayed
More Precisely
If the fixed format was set previously
with the statement:
cout.setf(ios::fixed);
then the setprecision(2) manipulator
would have the effect of rounding or
truncating price (and all future floatingpoint values in the cout stream) to the
hundredths place
Field Width
The setw manipulator controls the width
of the field when displaying a value. The
statement:
cout << setw(10) << umEndow << endl;
sets the width of the field allocated for
the variable, umEndow, to 10 characters
Formatted Output
cout.setf(ios : : fixed)
Print “fixed point” form, not in exponential
form
cout.setf(ios : : showpoint)
Says to always print the decimal point
cout.precison(2)
Says to print out the two most significant
decimal digits, after rounding to this precision
Download