What is the problem with the delay function. compiler is giving Error on that inappropriate call of delay function.

#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include<dos.h>
#define LEFT 1
#define RIGHT 2

struct node
{
char word[20],meaning[100];
node *left,*right;
};

node *maketree(char[],char[]);

node* treefromfile();
void filefromtree(node*);
void addword(node*,char[],char[]);
void seperateword(char[],char[],char[]);
void displayall(node*);
node* bsearch(node*,char[]);
void showmenu();
FILE *file_ptr;

void prog()
{
clrscr();
char word[20],meaning[100];
int menuchoice;
node *temp;
temp=treefromfile();
if(temp==NULL)
{
printf("File does not exist or dictionary is empty...");
getch();
}
while(1)
{
clrscr();
showmenu();
scanf("%d",&menuchoice);
switch(menuchoice)
{
case 1:printf("
Enter word : ");
scanf("%s",word);
printf("
Enter meaning : " );
flushall();
gets(meaning);
if(temp==NULL)
temp=maketree(word,meaning);
else
addword(temp,word,meaning);
break;
case 2:if(temp==NULL)
printf("The dictionary is empty...");
else
{
printf("Find meaning of : ");
flushall();
gets(word);
node *t;
t=bsearch(temp,word);
if(t==NULL)
printf("Word not found...");
else
{
printf("%s : ",t->word);
puts(t->meaning);
}
}
getch();
break;
case 3:if(temp==NULL)
printf("Dictionary is empty...");
else
displayall(temp);
getch();
break;
case 4:filefromtree(temp);
exit(1);
break;
default:cout<<"Enter Again";
delay(1000);
prog();
break;
}
}
}
void showmenu()
{
printf("COMPUTER DICTIONARY");
printf("[1]. Add a word.");
printf("[2]. Find meaning.");
printf("[3]. Display all.");
printf("[4]. Save and Close.Enter Choice");
}
node* treefromfile()
{
node *ptree=NULL;
char word[20],meaning[100],str[120],*i;
int flags=0;
file_ptr=fopen("C:\dict.anu","r");
if(file_ptr==NULL)
ptree=NULL;
else
{

while(!feof(file_ptr))
{
i=fgets(str,120,file_ptr);
if(i==NULL)
break;
seperateword(str,word,meaning);
if(flags==0)
{
ptree=maketree(word,meaning);
flags=1;
}
else
addword(ptree,word,meaning);
}

fclose(file_ptr);
}
return ptree;
}
node* maketree(char w[],char m[])
{
node *p;
p=new node;
strcpy(p->word,w);
strcpy(p->meaning,m);
p->left=NULL;
p->right=NULL;
return p;
}
void seperateword(char str[],char w[],char m[])
{
int i,j;
for(i=0;str[i]!=' ';i++)
w[i]=str[i];
w[i++]=NULL; //Append the null and skip the space.
for(j=0;str[i]!='';i++,j++)
{
m[j]=str[i];
}
m[j]=NULL;
}
void addword(node *tree,char word[],char meaning[])
{
node *p,*q;
p=q=tree;
while(strcmp(word,p->word)!=0 && p!=NULL)
{
q=p;
if(strcmp(word,p->word)<0)
p=p->left;
else
p=p->right;
}
if(strcmp(word,q->word)==0)
{
printf("This word already exists...");
delay(1000);
}
else if(strcmp(word,q->word)<0)
q->left=maketree(word,meaning);
else
q->right=maketree(word,meaning);
}
node* bsearch(node *tree,char word[])
{
node *q;
q=tree;
while(q!=NULL)
{
//p=q;
if(strcmp(word,q->word)<0)
q=q->left;
else if(strcmp(word,q->word)>0)
q=q->right;
if(strcmp(word,q->word)==0)
break;
}
return q;
}
void filefromtree(node *tree)
{
void travandwrite(node*);
file_ptr=fopen("C:\dict.anu","w");
if(file_ptr==NULL)
{
printf("Cannot open file for writing data...");
}
else //if(tree==NULL)
{
if(tree!=NULL)
{
travandwrite(tree);
}
fclose(file_ptr); //Close the file anyway.
}
}
void travandwrite(node *tree)
{
if(tree!=NULL)
{
fprintf(file_ptr,"%s %s",tree->word,tree->meaning);
travandwrite(tree->left);
travandwrite(tree->right);
}
}
void displayall(node *tree)
{
if(tree!=NULL)
{
displayall(tree->left);
printf("%s : %s",tree->word,tree->meaning);
displayall(tree->right);
}
}

void intro()
{
int i;
clrscr();
gotoxy(20,20);
cout<<"DICTIONARY LOADING";
for(i=0;i<50;i++)
{
gotoxy(15+i,21);
cout<<"รพรพรพ";
gotoxy(20,22);
cout<<2*i<<"% completed";
delay(150);
}
gotoxy(20,20);
cout<<"DICTIONARY LOADING COMPLETED";
clrscr();
}
void main()
{

intro();
prog();

}


Last edited on
What is the problem with this code.
1) Using deprecated header names.
2) Using non-standard libraries (conio.h, dos.h). Wow, DOS.
3) Writing void main() instead of int main() which is the standard.

As for your post, you did not use code tags. You could edit your original post and put your code into code tags right now.

It is difficult to help you. You shouldn't just throw the source code at us and ask "what's wrong with it?"

Instead you must tell us what compiler errors you get, what you want the code to do and it doesn't do, and so on.

And always post a short post, trying to keep the code you post to a minimum so that we can focus on solving the problem instead of searching for it.
Last edited on
Topic archived. No new replies allowed.