#include #include #include #include "mscanf.h" #define MAXFMT 100 void mscanf(char *fmt, ...) { va_list ap; int i; char lfmt[MAXFMT]; va_start(ap, fmt); for (; *fmt; fmt++) { if (isblank(*fmt)) { continue; } else if (*fmt != '%') { if (*fmt == getchar()) continue; else break; } i = 0; while (i < MAXFMT && !isalpha(lfmt[i++] = *fmt++)) ; lfmt[i] = '\0'; scanf(lfmt, va_arg(ap, void *)); fmt--; } va_end(ap); }