![]() Chapter Contents |
![]() Previous |
![]() Next |
| scanf |
| Portability: | ISO/ANSI C conforming, UNIX compatible |
| SYNOPSIS | |
| DESCRIPTION | |
| RETURN VALUE | |
| DIAGNOSTICS | |
| IMPLEMENTATION | |
| EXAMPLE | |
| RELATED FUNCTIONS | |
| SEE ALSO |
| SYNOPSIS |
#include <stdio.h> int scanf(const char *format, loc1, ... );
| DESCRIPTION |
scanf
reads formatted data from
stdin
. Following
the format in the argument list may be one or more additional pointers (
loc1, loc2, ..., locn
) addressing storage where
the input values will be stored.
The string pointed to by
format
is in the same form as that used by
fscanf
. Refer to the
fscanf
description
for detailed information concerning the formatting conventions.
| RETURN VALUE |
scanf
returns
EOF
if end of file (or an input
error) occurs before any values are stored. If any values are stored, it
returns the number of items stored; that is, it returns the number of times
a value is assigned by one of the
scanf
argument pointers.
| DIAGNOSTICS |
EOF
is returned if an error occurs before any items are matched.
| IMPLEMENTATION |
scanf
is identical to
fscanf
with
stdin
as the input file.
| EXAMPLE |
#include <lcio.h>
#include <stdio.h>
double point[40];
main()
{
int index = 0;
double sum = 0.0;
double avg;
int nopoints;
int stdn_fn = 0;
/* If stdin is the terminal, fileno(stdin) is always 0. */
if (isatty(stdn_fn))
/* Tell user to enter data points; maximum = 39. */
puts("Enter data points (-1 to indicate end of list).");
for(;;){
/* Read number; check for end of file. */
if (scanf("%le", &point[index]) <= 0)
break;
if (point[index] == -1)
break;
sum += point[index];
++index;
}
nopoints = index;
avg = sum / nopoints;
printf("%d points read.\n", nopoints);
printf("%f = average.\n", avg);
}
| RELATED FUNCTIONS |
| SEE ALSO |
![]() Chapter Contents |
![]() Previous |
![]() Next |
![]() Top of Page |
Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.