| Description |
The sscanf517 function reads data from the string buffer. Data input are stored in the locations specified by
argument according to the format string fmtstr. Each argument must be a pointer
to a variable that corresponds to the type defined in fmtstr. The type specified in fmtstr
controls the interpretation of the input data. The fmtstr may be composed of one or more whitespace
characters, non-whitespace characters, and format specifications, as
defined in the scanf function description.
Note
-
The total number of bytes that may be passed to this function
is limited due to the memory restrictions imposed by the 8051. A
maximum of 15 bytes may be passed in SMALL or COMPACT model. A
maximum of 40 bytes may be passed in LARGE model.
-
This routine uses the arithmetic unit of the Infineon
C517x/C509 to provide accelerated execution speed. Do not use this
routine with a CPU that does not support this feature.
|
| Example |
#include <80c517.h>
#include <stdio.h> /* for printf */
void tst_sscanf517 (void) {
char a;
int b;
long c;
unsigned char x;
unsigned int y;
unsigned long z;
float f,g;
char d, buf [10];
int argsread;
printf ("Reading a signed byte, int,and long\n");
argsread = sscanf517 ("1 -234 567890", "%bd %d %ld", &a, &b, &c);
printf ("%d arguments read\n", argsread);
printf ("Reading an unsigned byte, int, and long\n");
argsread = sscanf517 ("2 44 98765432", "%bu %u %lu", &x, &y, &z);
printf ("%d arguments read\n", argsread);
printf ("Reading a character and a string\n");
argsread = sscanf517 ("a abcdefg", "%c %9s", &d, buf);
printf ("%d arguments read\n", argsread);
printf ("Reading two floating-point numbers\n");
argsread = sscanf517 ("12.5 25.0", "%f %f", &f, &g);
printf ("%d arguments read\n", argsread);
}
|