50
© Janice Regan, CMPT 128, Sept 2007 1 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Embed Size (px)

Citation preview

Page 1: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, Sept 2007 1

CMPT 128: Introduction to Computing Science for Engineering Students

C++ Basic Input and output

Page 2: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, 2007-2013 2

C++ Basic Input and Output (I/O) To print to your computer’s screen (console) or

the read data typed into your keyboard you will need to use objects from the C++ iostream library.

To access the objects in the iostream library you must use a #include pre-processor directive to include their declarations: #include <iostream> This directive tells C++ to use appropriate library so

we can use the I/O objects cin, cout, cerr, endl needed for simple input and output

Page 3: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

C++ output by example

Consider the code sampleIO.cpp posted with this set of notes.

Lets discuss the examples given in the code

© Janice Regan, CMPT 128, 2007-2013 3

Page 4: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Integers, Doubles and Floats

Each variable or constant in C or C++ must have a type (e. g. int double or float) Whole numbers with no fractional parts are

integers, type int. Floating point numbers, numbers with

fractional points (even when the fractional part is 0) are type float or type double

© Janice Regan, CMPT 128, 2007-2013 4

Page 5: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

float vs double

Historically, in both C and C++, type double used more bits to represent each number

More bits allowed variables of type double To be larger than variables of type float To be smaller than variables of type float Be more accurate than variables of type float

The reasons these statements are true will be explained later.

© Janice Regan, CMPT 128, 2007-2013 5

Page 6: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, 2007-2013

6

C++ Spaces inside “ “

cout << fixed << setprecision(2) << "The balance is $" << balance << endl;

cout << “the interest is “ << percent << “ % ” ;cout << precision(5) << percent/100 << endl;

PRINTSThe balance is $78.50The interest is 12.45 % 0.12450

Thee is no space between $ and the final quote in code, there is a space between % and the final “ in the code. Therefore, in the output $ is immediately followed by the value (no space) but % is followed by a space.

Page 7: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

C++ endl Consider the output window (the window in

which the output from your program, and the input from your keyboard is displayed.)

When your code executes the instruction

cout << endl;

The cursor in the output window is moved to

the beginning of the next line

© Janice Regan, CMPT 128, 2007-2013 7

Page 8: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, 2007-2013 8

C++: Moving to a new output line C++ style: endl C++ can also use C style: "\n"

escape sequence for the char "newline“

cout << "Hello World" << endl;

cout << "Hello World\n";

In C++ both the statements print string

"Hello World" to display, then move to next line

Page 9: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, 2007-2013 9

C++ Output Window Output What can you print to your computer’s output

window using the insertion operator <<?

string name=“John”;

const double scale_factor = 2.2;

cout << scale_factor // Prints 2.2, the value of constant scale_factor

cout << name; // Prints John, the name stored in variable name

cout << “This is a string literal”; // Prints This is a string literal

Each cout above prints the value of one variable or constant

Page 10: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, 2007-2013 10

C++ Output window Output You can print the values of more than one

variable or constant in a single cout statementcout << “the number of games was ” << numGames << endl << “our team won “ << numWin << “ games” << endl;

Given that the variables have the values numGames = 23 and numWin = 15

This single cout statement printsthe number of games was 23 our team won 15 games

to the output window

Page 11: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, 2007-2013 11

C++ 3 Equivalent Outputscout << “the number of games was ” << numGames

endl << “ out team won “ << numWin << “ games” << endl;// One cout statement printing many values in succession

cout << “the number of games was ” << numGames << endl; cout << “ out team won “ << numWin << “ games” << endl;// Two cout statements, each printing half the values

cout << “the number of games was ” ;cout << numGames;cout << endl; cout << “ out team won “ ;cout << numWin ;cout << “ games” ;cout << endl; // each value printed using a single cout statement

Page 12: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Number of digits after decimal

There are two ways in C++ to specify how many digits to print after the decimal point One method is shown in your text

Uses <iostream> library only Uses “magic formula” to set number of digits

after the decimal point The other method uses manipulators

Uses <iomanip> and <iostream> libraries Syntax is simpler to remember

© Janice Regan, CMPT 128, 2007-2013 12

Page 13: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Explain the “magic formula”cout.setf(ios::fixed);

//Tells C++ to display output in fixed format xxx.yyy

cout.setf(ios::showpoint);

//Tells C++ to always print the decimal point

cout.precision(3);

//Tells C++ to print 3 digits after the decimal point

Sets your program so all floating point numbers printed after these statements will print in fixed format with 3 digits after the decimal point

Adding another cout.precision(N) statement later in your code will cause all floating point numbers after that statement to print with N digits after the decimal point …

© Janice Regan, CMPT 128, 2007-2013 13

Page 14: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Extend the “magic formula”cout.unsetf(ios::fixed);

//Tells C++ to stop displaying in fixed format xxx.yyy

cout.setf(ios::scientific);

//Tell C++ to start displaying in scientific notation xxx.yyy Ezz

You can switch from fixed point notation to scientific notation (or from scientific notation to fixed point notation)

First you must unset the flag telling C++ to print using floating point. Then you must set the flag to tell C++ to print using scientific notation. (Or unset scientific and set fixed)

Results will not be predictable if you set both flags simultaneously

© Janice Regan, CMPT 128, 2007-2013 14

Page 15: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

What else can you specify? The programmer can explicitly specify how C++

should format the numbers output by their programs using the <iomanip> library

In particular you can specify The number of digits printed The number of digits printed after the decimal point width of field (how many spaces to leave for a value) Fixed point 123.4 or scientific notation 1.234 E2

© Janice Regan, CMPT 128, 2007-2013 15

Page 16: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, 2007-2013 16

C++ Manipulators

Used to control how output is formatted Require user to include <iomanip> library

fixed scientific setw() setprecision() left right

© Janice Regan, CMPT 128, 2007-2012

Page 17: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, 2007-2013 17

Manipulators: fixed + setprecision()

fixed, prints number as fixed point, xx.yyy setprecision(2) indicates 2 digits after the

decimal point Continues to use precision 2 and fixed until told

to change in another cout command

cout << "$" << fixed << setprecision(2)

<< 10.3 << " "<< "$" << 20.512 << endl;

Prints$10.30 $20.51

© Janice Regan, CMPT 128, 2007-2012

Page 18: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, 2007-2013 18

Manipulators: scientific + setprecision()

scientific and setprecision() manipulators: setprecision(4) indicates 4 digits after the decimal point

cout << “population is " << scientific

<< setprecision(4) << " is " <<

<< mypop << endl;

If mypop has value 333444 cout statement prints:

population is 3.3345 e+005

© Janice Regan, CMPT 128, 2007-2012

scientific prints number in scientific notation, xxx.yy Ezz

Page 19: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Changing Format: Example

cout << fixed << setprecision(2) << "the interest is "

<< 12.33333 << "% or $”<< dollars << endl;

cout << scientific << setprecision(4)

<< "The amount is " << 111.234567 << endl;

Format changes after scientific is used. The code above print the following when dollars has value 33.12:

the interest is 12.34% or $33.12

The amount is 1.1123e+002

© Janice Regan, CMPT 128, 2007-2013 19

Page 20: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, 2007-2013 20

Manipulator: setw() setw()

Sets the width in characters of the output field By default output will be right justified in the output field If the output has the same number of characters as the number

or spaces available within the field it will fill the field If the output has fewer characters as the number or spaces

available within the field it will by default be right justified within the field

Note: setw() affects only NEXT value output Must include setw() manipulator before each

item output

© Janice Regan, CMPT 128, 2007-2012

Page 21: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, 2007-2013 21

Manipulator Example: setw() setw() manipulator:

cout << “xxxxxxxxxxxxxxxxxxx”;cout << endl<<"Start" << setw(5) << 10

<< setw(4) << 20 << setw(6) << 30;

Prints: xxxxxxxxxxxxxxxxxxxx

Start 10 20 30

© Janice Regan, CMPT 128, 2007-2012

Page 22: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, 2007-2013 22

Manipulator Example: left, right left and right manipulators:cout << fixed << left << setw(20) << interest << " %" l;

cout << endl << setw(20) << balance << endl;

cout << setw(20) << right << 2333345.45678; Prints:

xxxxxxxxxxxxxxxxxxxxxx2.300000 %23.456000 2333345.456780

© Janice Regan, CMPT 128, 2007-2012

Page 23: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, 2007-2013 23

Input Using cin Differences:

">>" (extraction operator) points opposite Think of it as "pointing toward where the data goes"

Object name "cin" used instead of "cout" No literals allowed for cin

Must input "to a variable"

cin >> num; Waits on-screen for keyboard entry Value entered at keyboard is "assigned" to num

Page 24: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, 2007-2013 24

Prompting for Input: When using console output and keyboard input

always "prompt" user for input

cout << "Enter number of dragons: ";cin >> numOfDragons;

No "\n" in cout means that the prompt "waits" on same line for keyboard input as follows:Enter number of dragons: Waits here for input

Page 25: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, 2007-2013 25

Prompting for Input: When using console output and keyboard input

always "prompt" user for input

cout << "Enter number of dragons: \n";cin >> numOfDragons;

"\n" in cout means that the prompt "waits" on next line for keyboard input as follows:Enter number of dragons:

Waits here for input

Page 26: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Variable types and input

Be careful to give the correct type of data when responding to the prompt in a program.

Items from the keyboard will be converted but this may still not give the results you expect

© Janice Regan, CMPT 128, 2007-2013 26

Page 27: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Input the correct type of data

Think of all the information you type in as a continuous stream of characters If you are reading an integer and you read a

decimal point you will stop reading at the decimal point because the decimal point is not a part of an integer

The next time you read you will begin with the decimal point left over from the last input

© Janice Regan, CMPT 128, 2007-2013 27

Page 28: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Incorrect input examplesint one;

double two;

Int three;

cout << "enter an integer";

cin >> one;

cout << "enter a double ";

cin >> two;

cout << "enter an integer";

cin >> three;

cout << one << “ “

<< two << “ " << three;

© Janice Regan, CMPT 128, 2007-2013 28

enter an integer4

enter a double 2.4

enter an integer7

4 2.4 7

enter an integer5.6

enter a double enter an integer6

5 0.6 6

enter an integer12

enter a double 44

enter an integer88

12 44 88

Page 29: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Incorrect input examplesint one;

int two;

int three;

cout << "enter an integer ";

cin >> one;

cout << "enter integer 2";

cin >> two;

cout<<"enter integer 3";

cin>>three;

cout << "XX" << endl

<< one << " "<< two

<<three;

© Janice Regan, CMPT 128, 2007-2013 29

enter an integer 4.44

enter integer 2enter integer 3XX

4 -858993460-858993460

enter an integer hello

enter integer 2enter integer 3XX

-858993460 -858993460-858993460

Page 30: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, Sept 2007 30

CMPT 128: Introduction to Computing Science for Engineering Students

C Basic Input and output

Differences from C++

Page 31: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

© Janice Regan, CMPT 128, 2007-2013 31

C++ Basic Input and Output (I/O) To print to your computer’s screen (output

window) or the read data typed into your keyboard you will need to use objects from the C stdio library.

To access the objects in the stdio library you must use a #include pre-processor directive to include their declarations: #include <stdio.h> This directive tells C to use appropriate library so we

can use fprintf, fscanf etc

Page 32: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

C++ output by example

Consider the code sampleIO.c posted with this set of notes.

Lets discuss the examples given in the code

Each read or print used a C input or output conversion. The input or output conversion used depends on the type of the variable we are trying to print

© Janice Regan, CMPT 128, 2007-2013 32

Page 33: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

C input / output conversionsSPECIFIER PRINTS

c A Character. (A)

d or i A Signed decimal integer (-333)

eScientific notation (mantissa/exponent) Exponent uses e character (1.23 e12)

EScientific notation (mantissa/exponent) Exponent uses E character (1.23 E12)

f Decimal floating point (12.345)

g Use the shorter of %e or %f.

G Use the shorter of %E or %f

s String of characters (a string)

© Janice Regan, CMPT 128, 2007-2013 33

Page 34: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Always check your conversion

A common problem is using a conversion specifier that does no match the type of your variable

This usually causes the value to be printed incorrectly, even if the value itself is correct

© Janice Regan, CMPT 128, 2007-2013 34

Page 35: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

35© Janice Regan, CMPT 128, 2007-2013

First example: output

/* Print the sum. */ printf(“%f \n", sum);

The %f is the C conversion, all other characters (including blanks, commas, etc.) between the " " will be printed directly to the output line

The %f will be replaced by the value of the variable sum when the program prints the output line

Page 36: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Setting the size of the field The size of the field is the number of spaces

available in which the value can be printed. The size of the field is specified by an integer

between the % and the conversion specifier %12d /* an integer filling up to 12 characters */

%14lf /* a double filling up to 14 characters */

%17f /* a float filling up to 17 characters */

12345678901234567890 12345678901234567890456738510 375.340587

© Janice Regan, CMPT 128, 2007-2013 36

Page 37: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

37© Janice Regan, CMPT 128, 2007-2013

What is printed?printf ("%6d ", sum); /* sum is an int */

If the value of sum is 589 589 /*the number is preceded by 3 spaces*/

If the value of sum is -98,765-98765 /*no preceding blank spaces */

If the value of the sum is -57,639,862-57639862 /*overflows field, no blanks */

Page 38: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Setting the precision

Suppose we have a floating point number and we want it to print with a specified number of digits after the decimal point

The default for C is 6 digits after the decimal point

If we want more or less than 6 digits we must indicate this in our C conversion

%12.4f %9.2lf %18.4e © Janice Regan, CMPT 128, 2007-2013 38

Page 39: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

39© Janice Regan, CMPT 128, 2007-2013

What is printed?printf ("%12.2f ", sum); /* sum is a float */

If the value of sum is 589.73

589.73 /*the number is preceded by 6 spaces*/

If the value of sum is 798765.987632

798765.99 /*number is preceded by 3 spaces */

If the value of sum is 4.58 *109

458000000.00 /*no preceding blank spaces */

If the value of the sum is 2.2*1012

220000000000.00 /*overflows field, no blanks */

Page 40: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

40© Janice Regan, CMPT 128, 2007-2013

What is printed?printf ("%12.3 E", sum); /* sum is a float */

If the value of sum is 0.0000058973

5.897E-006 /* 3 digits after the decimal point, */

If the value of sum is 798765.987632

7.988E+005 /* 5 digits for exponent */

If the value of sum is 4.58 *109

4.580E+009 /* 1 digit for decimal point */

If the value of the sum is 2.2*1012

2.200E+012 /* total 11 digits */

Page 41: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Justification By default the number is right justified inside the

specified field. You can cause the number to be left justified by adding a

– before the integer indicating the size of the field

printf ("%12.2fend\n", sum); /* sum is a float */

printf ("%-12.2fend\n", sum); /* sum is a float */

If the value of sum is 589.73

589.73end 589.73 end

© Janice Regan, CMPT 128, 2007-2013 41

Page 42: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Displaying signs

By default the sign of a number is displayed only when that sign is negative. When the sign is positive no space is reserved for the sign.

You can cause the signs to be shown all the time (both positive and negative) by adding a + before the number indicating the width of the field.

© Janice Regan, CMPT 128, 2007-2013 42

Page 43: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Displaying Signs: Example

printf (“%8.3fMMM%8.2fEEE\n", sump, sumn);

printf (“%+8.3MMM%+8.2fEEE\n", sump, sumn);

Assume the value of sump is 589.73 and

the value of sumn is -475.7

589.730MMM -475.70EEE +589.730MMM-475.70 EEE

© Janice Regan, CMPT 128, 2007-2013 43

Page 44: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

44© Janice Regan, CMPT 128, 2007-2013

C conversions: Things to remember

ALWAYS use the correct C conversion When you specify a minimum field width,

remember that the sign, the decimal point, and the E (or e) for the exponent all count as digits.

If you specify a minimum field length smaller than the width of the variable being printed, your output will overflow the specified field (continue to the right of the specified field)

Do not specify a precision (.nn) for integers. Integers do not have digits after the decimal

Page 45: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

45© Janice Regan, CMPT 128, 2007-2013

printf(): Things to remember When there is no space between conversions,

there are no spaces between the printed outputs.

Anything you wish to appear in the output that is not the value of a variable must appear in the format statement. This includes spaces

The number of variables in the variable list must match the number of C conversions in the format statement

Page 46: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

46© Janice Regan, CMPT 128, 2007-2013

Special characters in printf statements There are other strings of characters, called escape

sequences, you can place within your format statement to produce particular results \n newline: move to the next output line \b backspace: move back one space before printing the

next character \t horizontal tab \v vertical tab \\ print a \ \? Print a ? \" print a “ \’ print a ‘ %% print a %

Note that a format statement should not contain the character produced by typing <enter>

Page 47: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

First example: C input /* Read the value of temperature. */ scanf(“%f \n", &temperature);

The %f is the C conversion, C will read only characters that can be part of a float variable (we are assuming temperature is a float variable)

The characters typed into the keyboard will replace the value of the variable temperature when the program reads the variable

© Janice Regan, CMPT 128, 2007-2013 47

Page 48: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

IMPORTANT In C ALWAYS use the correction C

conversion specifier. If you do not you will probably put the wrong value in your variable

In C always prepend a & to the name of the variable you are reading in the scanf statement

© Janice Regan, CMPT 128, 2007-2013 48

Page 49: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Reading a double N = scanf(“%12lf”, &myDoubleVariable);

C will read until It has read 12 characters that could be part of a

double variable (digits, decimal point, sign) Leading white space (space, tab, newline) is ignored. It

does not count toward the 12 characters.

It encounters a character that could not be part of a double variable (the character that cannot be part of the double variable will be the first character read when the next variable is read) or white space (space, tab, newline … )

© Janice Regan, CMPT 128, 2007-2013 49

Page 50: © Janice Regan, CMPT 128, Sept 2007 0 CMPT 128: Introduction to Computing Science for Engineering Students C++ Basic Input and output

Reading using scanf() N = scanf(“%12lf %8d”, &myVar1, &my2); If both myVar1 and my2 are successfully read N

will be 2 If myVar1 can be read and my2 cannot be read

N will be 1 Suppose the input was 12..72

myVar1 would be 12.0 My2 could not be read (first character is . which

cannot be part of an integer)

© Janice Regan, CMPT 128, 2007-2013 50