diff --git a/life.c b/life.c new file mode 100644 --- /dev/null +++ b/life.c @@ -0,0 +1,118 @@ +/** + * $Id$ + * $Source$ + * + */ + +#include +#include + +#define MAX 12 + +int read_file (char **); +int init_life (char **); +void free_life (char **); +void show_life (char **); + +int read_file (char **arena) +{ + int i, j; + char org; + + char file[80]; + FILE *inp = NULL; + + while (inp == NULL) { + printf ("Please enter the file name>> "); + if (scanf ("%s", file) < 1) + return -1; + + inp = fopen (file, "r"); + } + + for (i = 0; i < MAX; i++) { + printf ("Reading Line %3d: ", i); + for (j = 0; j < MAX; j++) { + if (feof (inp)) { + printf ("EOF detected\n"); + return fclose (inp); + } + + if ( (fscanf (inp, "%c ", &org)) < 1 ) + return -1; + + arena[i][j] = org; + printf ("%c ", arena[i][j]); + } + printf ("\n"); + } + + return fclose (inp); +} + +int init_life (char **arena) +{ + int i, j; + + for (i = 0; i < MAX; i++) { + if ((arena[i] = malloc (MAX + 1)) == NULL) + return -1; + for (j=0;j 2) + printf("Usage: %s\n", argv[0]); + + if (init_life (arena) == 0) + show_life (arena); + free_life (arena); + + return 0; +}