diff --git a/calc b/calc old mode 100755 new mode 100644 diff --git a/calc.c b/calc.c index 85f1466..67ee803 100644 --- a/calc.c +++ b/calc.c @@ -1,5 +1,6 @@ #include #include "operators.h" +#include "my_fscanf.h" int main(){ FILE *fp = NULL; @@ -9,10 +10,10 @@ int main(){ fp = fopen("read.txt","r"); if(fp!=NULL){ - fscanf(fp, "%d", &line); + my_fscanf(fp, "%d", &line); for(int i=0; i +#include "operators.h" +#include "my_fscanf.h" +int main(void) {  + FILE* fp = fopen("points.txt", "r");  + char type[10];  + double x, y;  + int line;  + + if(fp!=NULL) {   + my_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) + int* d; + char* cc; + int c; + + case 'd': + while(isspace(c=getc(fp))){} + d = va_arg(list, int); + while (isdigit(c)) { + num = num*10+c-'0'; + c = getc(fp); + } + *d = num; + break; + case 'c': + cc = va_arg(list, char*); + while (isspace(c = getc(fp))) {} + cc = getc(fp); + *cc = c; + break; + } + } + va_end(list); +} diff --git a/my_fscanf.h b/my_fscanf.h new file mode 100644 index 0000000..c0ac17a --- /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 !MY_FSCANF_H