Files
retrobsd/src/libc/stdio/scanf.c
2014-04-09 14:27:18 +01:00

46 lines
683 B
C

#include <stdio.h>
#include <stdarg.h>
int
scanf (const char *fmt, ...)
{
va_list args;
int n;
va_start (args, fmt);
n = _doscan (stdin, fmt, args);
va_end (args);
return n;
}
int
fscanf (FILE *iop, const char *fmt, ...)
{
va_list args;
int n;
va_start (args, fmt);
n = _doscan(iop, fmt, args);
va_end (args);
return n;
}
int
sscanf (const char *str, const char *fmt, ...)
{
FILE _strbuf;
va_list args;
int n;
_strbuf._flag = _IOREAD|_IOSTRG;
_strbuf._ptr = _strbuf._base = (void*) str;
_strbuf._cnt = 0;
while (*str++)
_strbuf._cnt++;
_strbuf._bufsiz = _strbuf._cnt;
va_start (args, fmt);
n = _doscan(&_strbuf, fmt, args);
va_end (args);
return n;
}