![]() |
| ||
| find the cause of the error in the C prog 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! |
| ||
| Re: find the cause of the error in the C prog During the first choice how will the file contains data???? The file will not be created at all ... |
| ||
| Re: find the cause of the error in the C prog Got the problem. In case 2 u have to declare ptr. Use ptr=(entry *)malloc(sizeof(entry)); after case 2 also |
| ||
| Re: find the cause of the error in the C prog Thanks a lot Mr.dilip.mathews,your suggestion helped me to correct my prog.Now it is working. |
| All times are GMT -4. The time now is 8:05 am. |
Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC