00001
00007
00008
00009 #define EOF (-2)
00010
00011 static int sgetch(int, char **);
00012 static int sungetch(int, char **);
00013 extern int _doscan(register char *, register int **, int (*)(), int (*)(), int, int);
00014
00022 int sscanf(char *str, char *fmt, int args)
00023 {
00024 char *s;
00025
00026 s = str;
00027 return(_doscan(fmt, (int **)&args, sgetch, sungetch, 0, (int)&s));
00028 }
00029
00035 static int sgetch(int dummy, char **cpp)
00036 {
00037 return( *(*cpp) == '\0' ? EOF : *(*cpp)++ );
00038 }
00039
00045 static int sungetch(int dummy, char **cpp)
00046 {
00047 return(*(*cpp)--);
00048 }