3. FORMATTED INPUTOUTPUT - PowerPoint PPT Presentation

1 / 15
About This Presentation
Title:

3. FORMATTED INPUTOUTPUT

Description:

A non-white-space character in a format string must match the next input ... ( The non-matching character can be read by a later call of scanf.) The call ... – PowerPoint PPT presentation

Number of Views:43
Avg rating:3.0/5.0
Slides: 16
Provided by: Ritwik3
Learn more at: https://www.cise.ufl.edu
Category:

less

Transcript and Presenter's Notes

Title: 3. FORMATTED INPUTOUTPUT


1
3. FORMATTED INPUT/OUTPUT
2
The printf Function
  • The first argument in a call of printf is a
    string, which may contain both ordinary
    characters and conversion specifications, which
    begin with the symbol.
  • Ordinary characters are printed as they appear in
    the string conversion specifications are matched
    one-by-one with the remaining arguments in the
    call of printf
  • int i, j
  • float x, y
  • printf("i d, j d, x f, y f\n",
  • i, j, x, y)

3
The printf Function
  • Warning C compilers dont check that the number
    of conversion specifications in a format string
    matches the number of output items
  • printf("d d\n", i) / too few items /
  • printf("d\n", i, j) / too many items /
  • Furthermore, theres no check that a conversion
    specification is appropriate for the type of item
    being printed
  • printf("f d\n", i, x)

4
Conversion Specifications
  • A conversion specification has the form -m.pX
  • m (optional) specifies the minimum field width.
  • - (optional) indicates left justification
    within the field the default is right
    justification.
  • .p (optional) specifies
  • Number of digits after the decimal point (for a
    floating point number)
  • Minimum number of digits to print (for an integer)

5
Conversion Specifications
  • X is one of the following letters
  • d - decimal signed integer
  • e - exponential floating point
  • f - fixed decimal floating point
  • g - whichever of e or f produces a shorter
    string
  • This is not a complete description of conversion
    specifications.

6
printf Example
Sample program include ltstdio.hgt int
main(void) int i float f i 40 f
839.21 printf("d5d-5d5.3d\n", i, i,
i, i) printf("10.3f10.3e-10g\n", f, f,
f) return 0 Output 40 4040
040 839.210 8.392e02839.21
7
Escape Sequences
  • String literals sometimes need to contain control
    characters (such as tab and newline) or
    characters that have a special meaning in C (such
    as "). These characters can be represented by
    escape sequences.
  • Character escapes consist of \ followed by one
    character
  • alert (bell) \a backslash \\
  • backspace \b question mark \?
  • form feed \f single quote \'
  • new-line \n double quote \"
  • carriage return \r
  • horizontal tab \t
  • vertical tab \v

8
Escape Sequences
  • Writing the \a escape causes a beep.
  • Writing the \n escape causes the cursor to move
    to the beginning of the next line.
  • Writing the \t escape causes the cursor to move
    to the next tab stop.
  • The \" escape allows us to print the double
    quote character printf("\"Hello!\"")
  • String literals may contain any number of escape
    sequences
  • printf("Item\tUnit\tPurchase\n\tPrice\tDate\n")

9
The scanf Function
  • scanf requires a format string, followed by
    variables into which input is to be stored. In
    most cases, each variable must be preceded by the
    symbol .
  • Warning Forgetting to put the symbol in
    front of a variable will have unpredictable and
    possibly disastrous results.

10
The scanf Function
scanf format strings are similar to printf
format strings, but usually contain only
conversion specifications int i, j float
x, y scanf("ddff", i, j, x, y)
Note When used with scanf, the e, f, and g
conversions are identical each causes scanf to
read a floating-point number. A sign, exponent,
and decimal point may or may not be present.
11
How scanf Works
scanf ignores white-space characters (blanks,
tabs, and new-line characters) when searching for
an input item. If scanf is used in the following
way scanf("ddff", i, j, x, y) the
input could be split over several lines 1 -20
.3 -4.0e3 or put on a single line 1 -20 .3
-4.0e3
12
How scanf Works
When scanf encounters a character that cant
be part of the current item, this character is
read again during the scanning of the next input
item or during the next call of scanf. Using the
same call of scanf as above scanf("ddff",
i, j, x, y) If the input is
1-20.3-4.0e3z Then i is assigned the value
1, j is 20, x is .3, and
y is 4.0e3.
13
The scanf Format String
A scanf format string may contain ordinary
characters in addition to conversion
specifications. A non-white-space character in
a format string must match the next input
character or scanf terminates without reading
further. (The non-matching character can be read
by a later call of scanf.) The call scanf("d/d/
d", month, day, year) will read 5/ 28/
2002 but not 5 / 28 / 2002
14
The scanf Format String
A white-space character in a format string
matches zero or more white-space characters in
the input. The call scanf("d /d /d", month,
day, year) will read 5 / 28 / 2002 and all
similar inputs, regardless of the amount of space
before and after each / symbol.
15
The scanf Format String
  • Warning Putting a new-line character at the end
    of a scanf format string is usually a bad idea
  • scanf("d\n", i)
  • After reading an integer, scanf skips
    white-space characters until it finds a
    non-white-space character. An interactive program
    will hang until the user enters a nonblank
    character.
Write a Comment
User Comments (0)
About PowerShow.com