find the cause of the error in the C prog

Thread Solved

Join Date: Jul 2006
Posts: 4
Reputation: joydeep1 is an unknown quantity at this point 
Solved Threads: 0
joydeep1 joydeep1 is offline Offline
Newbie Poster

find the cause of the error in the C prog

 
0
  #1
Jul 4th, 2006
I am trying to prepare a database using C,which can store data and from which data can be retrieved and edited.
First storing,then retrieving data from the file works.But,during first run of the prog if choice#2(i.e.,DISPLAY)is entered without entering any data using choice#1(although the file contains data),then error occurs,gets hung.A part of the prog is shown:

#
[PHP] include<stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>typedef struct {
char name[30];
char company[50];
char address[200];
char pin[7];
char web[30];
}entry;
FILE *fpt;int menu(void);
entry *ptr,commodity;
int n=sizeof(entry);
void main()
{
int choice;
do
{
choice=menu();
switch(choice)
{
case 1:ptr=(entry *)malloc(sizeof(entry));
fpt=fopen("data4.bin","a");
printf("\nEnter the name of the commodity:");
scanf("%s",ptr->name);
printf("\nEnter the name of the producing company:");
scanf("%s",ptr->company);
printf("\nEnter the address of the producing company:");
scanf("%s",ptr->address);
printf("\nEnter the pincode:");
scanf("%s",ptr->pin);
printf("\nEnter the website of the producing company:");
scanf("%s",ptr->web);
fwrite(ptr,n,1,fpt);printf("ENTERED\n");
fclose(fpt);
continue;
case 2:fpt=fopen("data4.bin","r");

do
{
if (fread(&ptr->name, sizeof(ptr->name), 1, fpt) == 1 &&
fread(&ptr->company, sizeof(ptr->company), 1, fpt) == 1 &&
fread(&ptr->address, sizeof(ptr->address), 1, fpt) == 1 &&
fread(&ptr->pin, sizeof(ptr->pin), 1, fpt) == 1 &&
fread(&ptr->web, sizeof(ptr->web), 1, fpt) == 1)
{
printf("\n\nThe name of the commodity:");
printf("%s",ptr->name);
printf("\nThe name of the producing company:");
printf("%s",ptr->company);
printf("\nThe address of the producing company:");
printf("%s",ptr->address);
printf("\nPincode:");
printf("%s",ptr->pin);
printf("\nWebsite of the producing company:");
printf("%s",ptr->web);
}
else if (feof(fpt))
{
printf("\n\nfinished reading file!\n");
break;
}
else {
printf("an error occured while reading the file!\n");
break;
}
} while (1);
fclose(fpt);continue;
case 3:printf("\nThank You for using!");exit(1);
}
}while(choice==1||choice==2);
getch();
}
int menu(void)
{
int choice;
do{
printf("Enter your choice:\n");
printf("1.CREATE the linked list\n");
printf("2.DISPLAY\n");
printf("3.EXIT\n");
scanf("%d",&choice);
}while(choice!=1 && choice!=2 && choice!=3);
return(choice);
}[/PHP]Please suggest the cause of this error!
Reply With Quote Quick reply to this message  
Join Date: Jun 2006
Posts: 89
Reputation: dilip.mathews is an unknown quantity at this point 
Solved Threads: 3
dilip.mathews's Avatar
dilip.mathews dilip.mathews is offline Offline
Junior Poster in Training

Re: find the cause of the error in the C prog

 
0
  #2
Jul 4th, 2006
During the first choice how will the file contains data????
The file will not be created at all ...
Reply With Quote Quick reply to this message  
Join Date: Jun 2006
Posts: 89
Reputation: dilip.mathews is an unknown quantity at this point 
Solved Threads: 3
dilip.mathews's Avatar
dilip.mathews dilip.mathews is offline Offline
Junior Poster in Training

Re: find the cause of the error in the C prog

 
0
  #3
Jul 4th, 2006
Got the problem. In case 2 u have to declare ptr.
Use ptr=(entry *)malloc(sizeof(entry)); after case 2 also
Reply With Quote Quick reply to this message  
Join Date: Jul 2006
Posts: 4
Reputation: joydeep1 is an unknown quantity at this point 
Solved Threads: 0
joydeep1 joydeep1 is offline Offline
Newbie Poster

Re: find the cause of the error in the C prog

 
0
  #4
Jul 4th, 2006
Thanks a lot Mr.dilip.mathews,your suggestion helped me to correct my prog.Now it is working.
Reply With Quote Quick reply to this message  
Reply

This thread has been marked solved.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC