diff --git a/main.c b/main.c index f4bb675ec98cb3a06875df9abaeb7373974aa012..80112d63e7018313ccb6ec787354a77429517327 100644 --- a/main.c +++ b/main.c @@ -1,11 +1,11 @@ #include "alloc.h" +#include "stdlib.h" - -int main() +int main(int argc, char ** argv) { int num; char * str[100]; - char move[4096]; // enough size; + char buf[1024]; // enough size; meta * temp = NULL; char * save = NULL; char flag; @@ -13,43 +13,61 @@ int main() int sequence; int n = 0; int i= 0; - scanf("%d %c",&num, &Algorithm); + FILE *fp = fopen(argv[1], "r"); + if(fp == NULL) + { + printf("Invalid File name.. please recheck File name\n"); + return 0; + } + fgets(buf, sizeof(buf), fp); + save = strtok(buf , " "); + flag = atoi(save); + save = strtok(buf , " "); + if(strcmp(save , "W") == 0) + Algorithm = 'W'; + else if(strcmp(save , "B") == 0) + Algorithm = 'B'; - for(i=0; i < num; i++) + else if(strcmp(save , "F") == 0) + Algorithm = 'F'; + while(i++ < flag) { -// printf("here?\n"); - scanf(" %c",&flag); - if(flag == 'r') + fgets(buf, sizeof(buf), fp); + save = strtok(buf , " "); + + if(strcmp(save , "r") == 0) { - scanf(" %d %d",&sequence , &size); + save = strtok(NULL , " "); + sequence = atoi(save); + save = strtok(NULL , " "); + size = atoi(save); temp = choose_meta(sequence); temp = m_realloc(temp + 1 , size); } - else if(flag == 's') + else if(strcmp(save , "s") == 0) { - // printf("asdf\n"); - scanf(" %[^\n]",move); -// printf("size : %d\n", strlen(move)); - str[n] = m_malloc(strlen(move) +1); - strcpy(str[n++], move); - // printf("strlen : %d\n" ,strlen(str[n -1])); + save = strtok(NULL , "\n"); + str[n] = m_malloc(strlen(save) +1); +// printf("buf = %s\n",save); + strcpy(str[n++], save); } - else if(flag == 'f') + else if(strcmp(save , "f") == 0) { - scanf(" %d",&sequence); -// printf("sequence = %d \n",sequence); + save = strtok(NULL , " "); + sequence = atoi(save); temp = choose_meta(sequence); m_free(temp + 1); } - else if(flag == 'e') + else if(strcmp(save , "e") == 0) { - scanf(" %d",&size); + save = strtok(NULL , " "); + size = atoi(save); m_malloc(size); } } temp = META.Head; i=0; - printf("\n"); +// printf("\n"); while(temp != NULL) { save = temp + 1; @@ -61,6 +79,7 @@ int main() temp = temp ->next; } + fclose(fp); // printf("\n"); // print_link(); return 0;