beautypg.com

Zilog Z8F0130 User Manual

Page 483

background image

UM013037-1212

scanf

Zilog Developer Studio II – Z8 Encore!

User Manual

459

A directive that is a conversion specification defines a set of matching input sequences, as
described below for each character. A conversion specification is executed in the follow-
ing steps:

Input white-space characters (as specified by the

isspace

function) are skipped,

unless the specification includes a ’[’, ’c,’ or ’n’ character.

An input item is read from the stream, unless the specification includes an n character.
An input item is defined as the longest sequence of input characters (up to any speci-
fied maximum field width) which is an initial subsequence of a matching sequence.
The first character, if any, after the input item remains unread. If the length of the input
item is zero, the execution of the directive fails: this condition is a matching failure,
unless an error prevented input from the stream, in which case it is an input failure.

Except in the case of a % character, the input item (or, in the case of a

%n

directive, the

count of input characters) is converted to a type appropriate to the conversion charac-
ter. If the input item is not a matching sequence, the execution of the directive fails:
this condition is a matching failure. Unless assignment suppression was indicated by a
*, the result of the conversion is placed in the object pointed to by the first argument
following the format argument that has not already received a conversion result. If this
object does not have an appropriate type, or if the result of the conversion cannot be
represented in the space provided, the behavior is undefined.

See the next section, scanf Conversion Characters, for valid input information.

Synopsis

#include

int scanf(char *format, ...);

Returns

The value of the macro EOF if an input failure occurs before any conversion. Otherwise,
the

scanf

function returns the number of input items assigned, which can be fewer than

provided for, or even zero, in the event of an early conflict between an input character and
the format.

Examples

int i

scanf("%d", &i);

The following example reads in two values.

var1

is an

unsigned

char

with two decimal

digits, and

var2

is a

float

with three decimal place precision.

scanf("%2d,%f",&var1,&var2);

Note: