add directory Minix
This commit is contained in:
251
Minix/CD-ROM-2.0/MINIX/MANUALS/MAN3/SCANF.3
Normal file
251
Minix/CD-ROM-2.0/MINIX/MANUALS/MAN3/SCANF.3
Normal file
@@ -0,0 +1,251 @@
|
||||
.\" @(#)scanf.3s 6.1 (Berkeley) 5/15/85
|
||||
.\"
|
||||
.TH SCANF 3 "May 15, 1985"
|
||||
.AT 3
|
||||
.SH NAME
|
||||
scanf, fscanf, sscanf, vscanf, vfscanf, vsscanf \- formatted input conversion
|
||||
.SH SYNOPSIS
|
||||
.nf
|
||||
.ft B
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
int scanf(const char *\fIformat\fP \fR[\fP, \fIpointer\fP\fR] ...\fP)
|
||||
int fscanf(FILE *\fIstream\fP, const char *\fIformat\fP \fR[\fP, \fIpointer\fP\fR] ...\fP)
|
||||
int sscanf(const char *\fIs\fP, const char *\fIformat\fP \fR[\fP, \fIpointer\fP\fR] ...\fP)
|
||||
int vscanf(const char *\fIformat\fP, va_list \fIargs\fP)
|
||||
int vfscanf(FILE *\fIstream\fP, const char *\fIformat\fP, va_list \fIargs\fP)
|
||||
int vsscanf(const char *\fIs\fP, const char *\fIformat\fP, va_list \fIargs\fP)
|
||||
.SH DESCRIPTION
|
||||
.B Scanf
|
||||
reads from the standard input stream
|
||||
.BR stdin .
|
||||
.B Fscanf
|
||||
reads from the named input
|
||||
.IR stream .
|
||||
.B Sscanf
|
||||
reads from the character string
|
||||
.IR s .
|
||||
Each function reads characters, interprets
|
||||
them according to a format, and stores the results in its arguments.
|
||||
Each expects as arguments
|
||||
a control string
|
||||
.IR format ,
|
||||
described below,
|
||||
and a set of
|
||||
.I pointer
|
||||
arguments
|
||||
indicating where the converted input should be stored.
|
||||
.PP
|
||||
The
|
||||
.B v*scanf
|
||||
functions can be used to make functions like the first three by using the
|
||||
.BR stdarg (3)
|
||||
method to process the argument pointers.
|
||||
.PP
|
||||
The
|
||||
control string
|
||||
usually contains
|
||||
conversion specifications, which are used to direct interpretation
|
||||
of input sequences.
|
||||
The control string may contain:
|
||||
.TP 4
|
||||
1.
|
||||
Blanks, tabs or newlines,
|
||||
which match optional white space in the input.
|
||||
.TP 4
|
||||
2.
|
||||
An ordinary character (not %) which must match
|
||||
the next character of the input stream.
|
||||
.TP 4
|
||||
3.
|
||||
Conversion specifications, consisting of the
|
||||
character
|
||||
.BR % ,
|
||||
an optional assignment suppressing character
|
||||
.BR * ,
|
||||
an optional numerical maximum field width, and a conversion
|
||||
character.
|
||||
.PP
|
||||
A conversion specification directs the conversion of the
|
||||
next input field; the result
|
||||
is placed in the variable pointed to by the corresponding argument,
|
||||
unless assignment suppression was
|
||||
indicated by
|
||||
.BR * .
|
||||
An input field is defined as a string of non-space characters;
|
||||
it extends to the next inappropriate character or until the field
|
||||
width, if specified, is exhausted.
|
||||
.PP
|
||||
The conversion character indicates the interpretation of the
|
||||
input field; the corresponding pointer argument must
|
||||
usually be of a restricted type.
|
||||
The following conversion characters are legal:
|
||||
.TP 4
|
||||
.B %
|
||||
a single `%' is expected
|
||||
in the input at this point;
|
||||
no assignment is done.
|
||||
.TP 4
|
||||
.B d
|
||||
a decimal integer is expected;
|
||||
the corresponding argument should be an integer pointer.
|
||||
.TP 4
|
||||
.B o
|
||||
an octal integer is expected;
|
||||
the corresponding argument should be a integer pointer.
|
||||
.TP 4
|
||||
.B x
|
||||
a hexadecimal integer is expected;
|
||||
the corresponding argument should be an integer pointer.
|
||||
.ti -0.2i
|
||||
.TP 4
|
||||
.B s
|
||||
a character string is expected;
|
||||
the corresponding argument should be a character pointer
|
||||
pointing to an array of characters large enough to accept the
|
||||
string and a terminating `\e0', which will be added.
|
||||
The input field is terminated by a space character
|
||||
or a newline.
|
||||
.TP 4
|
||||
.B c
|
||||
a character is expected; the
|
||||
corresponding argument should be a character pointer.
|
||||
The normal skip over space characters is suppressed
|
||||
in this case;
|
||||
to read the next non-space character, try
|
||||
`%1s'.
|
||||
If a field width is given, the corresponding argument
|
||||
should refer to a character array, and the
|
||||
indicated number of characters is read.
|
||||
.TP 4
|
||||
.B efg
|
||||
a floating point number is expected;
|
||||
the next field is converted accordingly and stored through the
|
||||
corresponding argument, which should be a pointer to a
|
||||
.BR float .
|
||||
The input format for
|
||||
floating point numbers is
|
||||
an optionally signed
|
||||
string of digits
|
||||
possibly containing a decimal point, followed by an optional
|
||||
exponent field consisting of an E or e followed by an optionally signed integer.
|
||||
.TP 4
|
||||
.B [
|
||||
indicates a string not to be delimited by space characters.
|
||||
The left bracket is followed by a set of characters and a right
|
||||
bracket; the characters between the brackets define a set
|
||||
of characters making up the string.
|
||||
If the first character
|
||||
is not circumflex (\|^\|), the input field
|
||||
is all characters until the first character not in the set between
|
||||
the brackets; if the first character
|
||||
after the left bracket is ^, the input field is all characters
|
||||
until the first character which is in the remaining set of characters
|
||||
between the brackets.
|
||||
The corresponding argument must point to a character array.
|
||||
.PP
|
||||
The conversion characters
|
||||
.BR d ,
|
||||
.B o
|
||||
and
|
||||
.B x
|
||||
may be capitalized or preceded by
|
||||
.B l
|
||||
to indicate that a pointer to
|
||||
.B long
|
||||
rather than to
|
||||
.B int
|
||||
is in the argument list.
|
||||
Similarly, the conversion characters
|
||||
.BR e ,
|
||||
.B f
|
||||
or
|
||||
.B g
|
||||
may be capitalized or
|
||||
preceded by
|
||||
.B l
|
||||
to indicate a pointer to
|
||||
.B double
|
||||
rather than to
|
||||
.BR float .
|
||||
The conversion characters
|
||||
.BR d ,
|
||||
.B o
|
||||
and
|
||||
.B x
|
||||
may be preceded by
|
||||
.B h
|
||||
to indicate a pointer to
|
||||
.B short
|
||||
rather than to
|
||||
.BR int .
|
||||
.PP
|
||||
The
|
||||
.B scanf
|
||||
functions return the number of successfully matched and assigned input
|
||||
items.
|
||||
This can be used to decide how many input items were found.
|
||||
The constant
|
||||
.SM
|
||||
.B EOF
|
||||
is returned upon end of input; note that this is different
|
||||
from 0, which means that no conversion was done;
|
||||
if conversion was intended, it was frustrated by an
|
||||
inappropriate character in the input.
|
||||
.PP
|
||||
For example, the call
|
||||
.IP "\&" 10
|
||||
int i; float x; char name[50];
|
||||
.br
|
||||
scanf("%d%f%s", &i, &x, name);
|
||||
.PP
|
||||
with the input line
|
||||
.IP
|
||||
25 54.32E\(mi1 thompson
|
||||
.PP
|
||||
will assign to
|
||||
.B i
|
||||
the value
|
||||
25,
|
||||
.B x
|
||||
the value 5.432, and
|
||||
.B name
|
||||
will contain `\fBthompson\e0\fP' .
|
||||
Or,
|
||||
.IP
|
||||
int i; float x; char name[50];
|
||||
.br
|
||||
scanf("%2d%f%*d%[1234567890]", &i, &x, name);
|
||||
.PP
|
||||
with input
|
||||
.IP
|
||||
56789 0123 56a72
|
||||
.PP
|
||||
will assign 56 to
|
||||
.BR i ,
|
||||
789.0 to
|
||||
.BR x ,
|
||||
skip `0123',
|
||||
and place the string `56\e0' in
|
||||
.BR name .
|
||||
The next call to
|
||||
.B getchar
|
||||
will return `a'.
|
||||
.SH "SEE ALSO"
|
||||
.BR atof (3),
|
||||
.BR getc (3),
|
||||
.BR printf (3),
|
||||
.BR stdarg (3).
|
||||
.SH DIAGNOSTICS
|
||||
The
|
||||
.B scanf
|
||||
functions return
|
||||
.SM
|
||||
.B EOF
|
||||
on end of input,
|
||||
and a short count for missing or illegal data items.
|
||||
.SH BUGS
|
||||
The success of literal matches and suppressed
|
||||
assignments is not directly
|
||||
determinable.
|
||||
Reference in New Issue
Block a user