This is the code i'm using. I'm sorry the code is mostly written in dutch.
I'd put some !!!! at the place where I want to read a string (a question in type in stdin) with gets() or something similar.
Code:
#include "bindtree.h"
#include <stdio.h>
Bdtnode daal_af(Bdtnode data);
void main(void){
int x;
char antwoord[MAX_LENGTH];
int juistantwoord;
char hulp;
char dier[MAX_LENGTH]; /* dit is een string, dus van de vorm char* */
char vraag[MAX_LENGTH];
Bdtnode daling;
x=1;
FILE* animal = fopen("/Users/kevinkenis/Desktop/School/2010-2011/Programmeren/Project programmeren/dieren.txt","r");
if(animal==NULL)
printf("verplaats bestand naar map waarin je werkt!"); /*let op dat je het txt bestand kunt openen! */
else{
Bdtree animals = fread_tree(animal);
while (x==1){
daling = daal_af(animals);
if (is_leaf(daling)== 1){
printf("Was dit het dier dat je in gedachten had?\n");
scanf("%s",antwoord);
if (antwoord[0] == 'j' && antwoord[1]== 'a' && antwoord[2] == '\0'){
printf("Ben ik niet geniaal!"); /*Goed zo, het spel is gedaan, je kan opnieuw beginnen*/
x=0; /*while lus wordt beëindigd*/
}
else{
printf("Welk dier had je dan wel in gedachten?\n");
scanf("%s",dier);
printf("Geef een vraag waarmee ik dit dier kan onderscheiden:\n");
gets(vraag); // !!!!!!! Here does it go wrong!!!!!!!!
printf("Wat is het antwoord op '%s' om '%s' te bekomen?\n, 0/1",vraag, dier);
scanf("%d",&juistantwoord);
}
}
else
printf("probleem");
}
insert_new_item(animals,animals,dier,vraag,juistantwoord);
free_tree(animals);
fclose(animal);
}
}
Bdtnode daal_af(Bdtnode node){
char antwoord[MAX_LENGTH]; /*naamgeving voor afdaling boom*/
printf("%s\n",node->data);
if(is_leaf(node)== 0){
scanf("%s",antwoord);
if(antwoord[0] =='j' && antwoord[1] =='a' && antwoord[2] == '\0'){
return daal_af(node->leftchild);
}
else{
return daal_af(node->rightchild);
}
}
return node;
}