StreamBuf/sscanf.c

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