baum
diff baum.c @ 12:8e34daa80f64
input is now read from file again (because of input node)
author | meillo@marmaro.de |
---|---|
date | Tue, 12 Feb 2008 15:53:08 +0100 |
parents | 0e15841ae111 |
children | bf660b45bba9 |
line diff
1.1 --- a/baum.c Sat Feb 09 17:26:05 2008 +0100 1.2 +++ b/baum.c Tue Feb 12 15:53:08 2008 +0100 1.3 @@ -132,7 +132,7 @@ 1.4 1.5 1.6 /* read input */ 1.7 -void read_input() { 1.8 +void read_input(char* filename) { 1.9 int c; 1.10 int indent; 1.11 char name[256]; 1.12 @@ -140,6 +140,7 @@ 1.13 int last_indent; 1.14 struct Node* last_node; 1.15 struct Node* node; 1.16 + FILE* file; 1.17 1.18 indent = 0; 1.19 strcpy(name, ""); 1.20 @@ -147,10 +148,11 @@ 1.21 last_indent = -1; 1.22 root = newNode("blackhole", 0); 1.23 last_node = root; 1.24 + file = fopen(filename, "r"); 1.25 1.26 - while ((c = getchar()) != EOF) { 1.27 + while ((c = getc(file)) != EOF) { 1.28 if (c == '#') { /* comment */ 1.29 - while ((c = getchar()) != '\n') { 1.30 + while ((c = getc(file)) != '\n') { 1.31 } 1.32 } 1.33 1.34 @@ -186,7 +188,7 @@ 1.35 if (c >= 'a' && c <= 'z') { /* name */ 1.36 int i = 1; 1.37 name[0] = (char) c; 1.38 - while ((c = getchar()) != '(') { 1.39 + while ((c = getc(file)) != '(') { 1.40 name[i] = (char) c; 1.41 i++; 1.42 if (i > 255) { 1.43 @@ -197,18 +199,20 @@ 1.44 } 1.45 1.46 if (c == '(') { /* value */ 1.47 - scanf("%d)", &value); 1.48 + fscanf(file, "%d)", &value); 1.49 } 1.50 1.51 } 1.52 1.53 + fclose(file); 1.54 + 1.55 } 1.56 1.57 /* main */ 1.58 int main(int argc, char* argv[]) { 1.59 unsigned char shell_return = 0; 1.60 1.61 - read_input(); 1.62 + read_input("./input_sum3input"); 1.63 printTree(root); 1.64 1.65 shell_return = action(root);