Mercurial > baum
comparison baum.c @ 7:6a6152cf63f7
new implementation of the read input function
author | meillo@marmaro.de |
---|---|
date | Sat, 09 Feb 2008 11:57:16 +0100 |
parents | ab87b154a96b |
children | 495a56e706dc |
comparison
equal
deleted
inserted
replaced
6:ab87b154a96b | 7:6a6152cf63f7 |
---|---|
180 } | 180 } |
181 | 181 |
182 | 182 |
183 /* read input */ | 183 /* read input */ |
184 void read_input(char* filename) { | 184 void read_input(char* filename) { |
185 FILE* fp; | 185 FILE* file; |
186 char c; | 186 int c; |
187 char* line; | 187 char* cp; |
188 int indent; | 188 int indent = 0; |
189 char* name; | 189 char name[256]; |
190 int value; | 190 int value; |
191 | 191 |
192 fp = fopen(filename, "r"); | 192 file = fopen(filename, "r"); |
193 indent = 0; | 193 |
194 | 194 |
195 while ((c = getc(fp)) != EOF) { | 195 while ((c = getc(file)) != EOF) { |
196 if (c == '#') { | |
197 printf("c\n"); | |
198 while ((c = getc(file)) != '\n') { | |
199 } | |
200 } | |
201 | |
196 if (c == ' ' || c == '\t') { | 202 if (c == ' ' || c == '\t') { |
197 indent++; | 203 indent++; |
198 } else if (c == '(') { | 204 } |
199 fscanf(fp, "%d", &value); | 205 |
200 } else if (c == '\n') { | 206 if (c == '\n') { |
201 | 207 if (strlen(name) > 0) { |
202 if (strcmp(name, "") != 0) { | 208 printf(" %d - %s - %d\n", indent, name, value); |
203 printf("\nindent: %d\nname: %s\nvalue: %d\n", indent, name, value); | 209 /* |
210 */ | |
211 } else { | |
212 printf("comment\n"); | |
204 } | 213 } |
205 indent = 0; | 214 indent = 0; |
206 strcpy(name, ""); | 215 strcpy(name, ""); |
207 value = 0; | 216 value = 0; |
208 } else { | 217 } |
209 fscanf(fp, "%[a-z]", name); | 218 |
210 } | 219 if (c >= 'a' && c <= 'z') { |
211 } | 220 int i = 1; |
221 name[0] = (char) c; | |
222 while ((c = getc(file)) != '(') { | |
223 /*putc(c, stdout);*/ | |
224 name[i] = (char) c; | |
225 i++; | |
226 } | |
227 name[i] = '\0'; | |
228 } | |
229 | |
230 if (c == '(') { | |
231 fscanf(file, "%d)", &value); | |
232 } | |
233 | |
234 } | |
235 | |
236 fclose(file); | |
212 } | 237 } |
213 | 238 |
214 /* main */ | 239 /* main */ |
215 int main(int argc, char* argv[]) { | 240 int main(int argc, char* argv[]) { |
216 unsigned char shell_return; | 241 unsigned char shell_return = 0; |
217 /* | 242 /* |
218 init(); | 243 init(); |
219 | 244 |
220 printTree(root); | 245 printTree(root); |
221 fprintf(stderr, "\n\n"); | 246 fprintf(stderr, "\n\n"); |