Chapter 9 Formatted InputOutput - PowerPoint PPT Presentation

1 / 42
About This Presentation
Title:

Chapter 9 Formatted InputOutput

Description:

9.8 Printing with Field Widths and Precisions. 9.9 Using ... Use a caret ^: [^aeiou] Causes characters not in the scan set to be stored. Skipping characters ... – PowerPoint PPT presentation

Number of Views:27
Avg rating:3.0/5.0
Slides: 43
Provided by: kal797
Category:

less

Transcript and Presenter's Notes

Title: Chapter 9 Formatted InputOutput


1
Chapter 9 - Formatted Input/Output
Outline 9.1 Introduction 9.2 Streams 9.3 Format
ting Output with printf 9.4 Printing
Integers 9.5 Printing Floating-Point
Numbers 9.6 Printing Strings and
Characters 9.7 Other Conversion
Specifiers 9.8 Printing with Field Widths and
Precisions 9.9 Using Flags in the printf
Format-Control String 9.10 Printing Literals and
Escape Sequences 9.11 Formatting Input with
scanf
2
Objectives
  • In this chapter, you will learn
  • To understand input and output streams.
  • To be able to use all print formatting
    capabilities.
  • To be able to use all input formatting
    capabilities.

3
9.1 Introduction
  • In this chapter
  • Presentation of results
  • scanf and printf
  • Streams (input and output)
  • gets, puts, getchar, putchar (in ltstdio.hgt)

4
9.2 Streams
  • Streams
  • Sequences of characters organized into lines
  • Each line consists of zero or more characters and
    ends with newline character
  • ANSI C must support lines of at least 254
    characters
  • Performs all input and output
  • Can often be redirected
  • Standard input keyboard
  • Standard output screen
  • Standard error screen
  • More in Chapter 11

5
9.3 Formatting Output with printf
  • printf
  • Precise output formatting is accomplished with
    printf
  • A printf call contains a format control string
    that describes output format. Format control
    string consists of
  • Conversion specifications Conversion specifier
    (), flags, field widths, precisions, and literal
    Characters.
  • Can perform rounding, aligning columns,
    right/left justification, inserting literal
    characters, exponential format, hexadecimal
    format, and fixed width and precision
  • Format
  • printf( format-control-string, other-arguments )
  • Format control string describes output format
  • Other-arguments correspond to each conversion
    specification in format-control-string
  • Each specification begins with a percent sign(),
    ends with conversion specifier

6
9.4 Printing Integers
7
9.4 Printing Integers
  • Integer
  • Whole number (no decimal point) 25, 0, -9
  • Positive, negative, or zero
  • Only minus sign prints by default (later we shall
    change this)

8
  • fig09_02.c

Program Output
  • 455
  • 455
  • 455
  • -455
  • 32000
  • 2000000000
  • 707
  • 455
  • 4294966841
  • 1c7
  • 1C7

7x800x817x827x10_7x647448455
7x160Cx1611x1627x112x162567192256455
9
9.5 Printing Floating-Point Numbers
  • Floating Point Numbers
  • Have a decimal point (33.5)
  • Exponential notation (computer's version of
    scientific notation)
  • 150.3 is 1.503 x 10² in scientific
  • 150.3 is 1.503E02 in exponential (E stands for
    exponent)
  • use e or E
  • f print floating point with at least one digit
    to left of decimal
  • g (or G) - prints in f or e with no trailing
    zeros (1.2300 becomes 1.23)
  • Use exponential if exponent less than -4, or
    greater than or equal to precision (6 digits by
    default)

10
9.5 Printing Floating-Point Numbers
11
  • fig09_04.c
  • Program Output
  • 1.234568e006
  • 1.234568e006
  • -1.234568e006
  • 1.234568E006
  • 1234567.890000
  • 1.23457e006
  • 1.23457E006

12
9.6 Printing Strings and Characters
  • c
  • Prints char argument
  • Cannot be used to print the first character of a
    string
  • s
  • Requires a pointer to char as an argument
  • Prints characters until NULL ('\0') encountered
  • Cannot print a char argument
  • Remember
  • Single quotes for character constants ('z')
  • Double quotes for strings "z" (which actually
    contains two characters, 'z' and '\0')

13
  • fig09_05.c

A This is a string This is a string This is also
a string
14
9.7 Other Conversion Specifiers
  • p
  • Displays pointer value (address)
  • n
  • Stores number of characters already output by
    current printf statement
  • Takes a pointer to an integer as an argument
  • Nothing printed by a n specification
  • Every printf call returns a value
  • Number of characters output
  • Negative number if error occurs
  • Prints a percent sign

15
9.7 Other Conversion Specifiers
16
  • fig09_07.c (1 of 2)

Program Output
The value of ptr is 0012FF78 The address of x is
0012FF78   Total characters printed on this line
38   This line has 28 characters 28 characters
were printed   Printing a in a format control
string
17
9.8 Printing with Field Widths and Precisions
  • Field width
  • Size of field in which data is printed
  • If width larger than data, default right
    justified
  • If field width too small, increases to fit data
  • Minus sign uses one character position in field
  • Integer width inserted between and conversion
    specifier
  • 4d field width of 4

18
9.8 Printing with Field Widths and Precisions
  • Precision
  • Meaning varies depending on data type
  • Integers (default 1)
  • Minimum number of digits to print
  • If data too small, prefixed with zeros
  • Floating point
  • Number of digits to appear after decimal (e and
    f)
  • For g maximum number of significant digits
  • Strings
  • Maximum number of characters to be written from
    string
  • Format
  • Use a dot (.) then precision number after
  • .3f

19
9.8 Printing with Field Widths and Precisions
  • Field width and precision
  • Can both be specified
  • width.precision
  • 5.3f
  • Negative field width left justified
  • Positive field width right justified
  • Precision must be positive
  • Can use integer expressions to determine field
    width and precision values
  • Place an asterisk () in place of the field width
    or precision
  • Matched to an int argument in argument list
  • Example
  • printf( ".f", 7, 2, 98.736 )
  • Uses 7 for the field width, 2 for the precision
    and outputs the value 98.74 right justified.

20
  • fig09_08.c

Program Output
  • 1
  • 12
  • 123
  • 1234
  • 12345
  • -1
  • -12
  • -123
  • -1234
  • -12345

21
  • fig09_09.c

22
Using precision for integers 0873
000000873 Using precision for floating-point
numbers 123.945 1.239e002
124 Using precision for strings Happy
Birth
  • Program Output

23
9.9 Using Flags in the printfFormat-Control
String
  • Flags
  • Supplement formatting capabilities
  • Place flag immediately to the right of percent
    sign
  • Several flags may be combined

24
  • fig09_11.c
  • Program Output

hello 7 a 1.230000   hello
7 a 1.230000
25
  • fig09_12.c
  • Program Output

786 -786 786 -786
26
  • fig09_13.c
  • Program Output

547 -547
27
  • fig09_14.c
  • Program Output

02623 0x593 0X593   1427 1427.00
28
  • fig09_15.c
  • Program Output

00000452 000000452
29
9.10 Printing Literals and Escape Sequences
  • Printing Literals
  • Most characters can be printed
  • Certain "problem" characters, such as the
    quotation mark "
  • Must be represented by escape sequences
  • Represented by a backslash \ followed by an
    escape character

30
9.10 Printing Literals and Escape Sequences
31
scanf
  • Important Topics
  • Conversion specifiers for scanf Table of Fig
    9.17
  • Example Fig 9.18, i d (i can read
    decimal/oct/hex)
  • Example Fig 9.19 Floating-point conversion
    specifiers (e/E, g/G, f) scanf using le, lf, lg
    and printing using f
  • Example Fig 9.20 Reading char string using c
    s
  • Scan set scanf (, z)Example Fig 9.21 A
    set of characters enclosed in , preceded by the
  • Inverted scan set using caret sign (,
    z) Example Fig 9.22
  • Field width Example Fig 9.23
  • Assignment suppression character c

32
9.11 Formatting Input with scanf
33
9.11 Formatting Input with scanf
34
9.11 Formatting Input with scanf
  • scanf
  • Input formatting
  • Capabilities
  • Input all types of data
  • Input specific characters
  • Skip specific characters
  • Format
  • scanf(format-control-string, other-arguments)
  • Format-control-string
  • Describes formats of inputs
  • Other-arguments
  • Pointers to variables where input will be stored
  • Can include field widths to read a specific
    number of characters from the stream

35
9.11 Formatting Input with scanf
  • Scan sets
  • Set of characters enclosed in square brackets
  • Preceded by sign
  • Scans input stream, looking only for characters
    in scan set
  • Whenever a match occurs, stores character in
    specified array
  • Stops scanning once a character not in the scan
    set is found
  • Inverted scan sets
  • Use a caret aeiou
  • Causes characters not in the scan set to be
    stored
  • Skipping characters
  • Include character to skip in format control
  • Or, use (assignment suppression character)
  • Skips any type of character without storing it

36
  • fig09_18.c
  • Program Output

Enter seven integers -70 -70 070 0x70 70 70
70 The input displayed as decimal integers
is -70 -70 56 112 56 70 112
37
  • fig09_19.c

Enter three floating-point numbers 1.27987
1.27987e03 3.38476e-06 Here are the numbers
entered in plain floating-point
notation 1.279870 1279.870000 0.000003
38
  • fig09_20.c
  • Program Output

Enter a string Sunday The input was the
character "S" and the string "unday"
39
  • fig09_21.c
  • Program Output

Enter string ooeeooahah The input was "ooeeooa"
40
  • fig09_22.c
  • Program Output

Enter a string String The input was "Str"
41
  • fig09_23.c
  • Program Output

Enter a six digit integer 123456 The integers
input were 12 and 3456
42
  • fig09_24.c

Enter a date in the form mm-dd-yyyy
11-18-2003 month 11 day 18 year
2003   Enter a date in the form mm/dd/yyyy
11/18/2003 month 11 day 18 year 2003
Write a Comment
User Comments (0)
About PowerShow.com