47 lines
824 B
C
Executable File
47 lines
824 B
C
Executable File
#include "stream.h"
|
|
|
|
int debug_scanf (const unsigned char *buf, const char *fmt, ...) {
|
|
stream_buf_t u;
|
|
va_list args;
|
|
int err;
|
|
|
|
stropen (&u, (unsigned char*) buf, 0);
|
|
va_start (args, fmt);
|
|
err = vscanf (&u, fmt, args);
|
|
va_end (args);
|
|
return err;
|
|
}
|
|
|
|
#ifdef TEST
|
|
/*
|
|
* Testing sscanf(3).
|
|
*/
|
|
#undef printf
|
|
int printf (const char *format, ...);
|
|
|
|
int
|
|
main (void)
|
|
{
|
|
int i;
|
|
short s;
|
|
long l;
|
|
char a[20], b[20];
|
|
|
|
sscanf (" -123 +123 123xyzwvabcdefghijk ", " %d%ho%lx%5c%s",
|
|
&i, &s, &l, a, b);
|
|
printf ("i=%d s=%d l=%ld a=`%.5s' b=`%s'\n",
|
|
i, s, l, a, b);
|
|
|
|
sscanf ("abc0123456789xyz", "abc%[0123456789]xyz", a);
|
|
printf ("a =`%s'\n", a);
|
|
|
|
sscanf ("abc0123456789xyz", "abc%[0-9]xyz", a);
|
|
printf ("a =`%s'\n", a);
|
|
|
|
sscanf ("abc0123456789xyz", "abc%[^a-z]xyz", a);
|
|
printf ("a =`%s'\n", a);
|
|
|
|
return 0;
|
|
}
|
|
#endif
|