From b577638c1987c894c0a95a482098a93239b80f53 Mon Sep 17 00:00:00 2001 From: OSeHyeon Date: Wed, 3 Aug 2016 14:51:26 -0700 Subject: [PATCH] fscanf --- calc.c | 3 ++- my_fscanf.c | 33 +++++++++++++++++++++++++++++++++ my_fscanf.h | 7 +++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 my_fscanf.c create mode 100644 my_fscanf.h diff --git a/calc.c b/calc.c index 85f1466..99d48fa 100644 --- a/calc.c +++ b/calc.c @@ -1,5 +1,6 @@ #include #include "operators.h" +#include "my_fscanf.h" int main(){ FILE *fp = NULL; @@ -12,7 +13,7 @@ int main(){ fscanf(fp, "%d", &line); for(int i=0; i +#include + +void my_fscanf(FILE *fp, const char* format, ... ) { + va_list list; + va_start(list, format); + while(*format) { + if(*format == '%') { + format++; + + switch(*format) { + case 'd': { + c = getc( list ); + printf("%d", c); + break; + } + case 'c': { + c = getc( list ); + printf("%c", c); + break; + } + } + + } + elseif(*format == ' ') { + format++; + } + elseif(*format == '\n') { + return 0; + } + } + va_end(list); diff --git a/my_fscanf.h b/my_fscanf.h new file mode 100644 index 0000000..fd352bd --- /dev/null +++ b/my_fscanf.h @@ -0,0 +1,7 @@ +#ifndef MY_FSCANF_H +#define MY_FSCANF_H +#include + +void my_fscanf( FILE *fp, const char *format, ... ); + +#endif