turbo c++ v4.5 compiler
Win ME

Here's my problem..
if i choose to view a record / ALL the record

the program can display it properly BUT it display twice..y?
pls check my below code


Code:
#include <stdio.h>
#include <conio.h>
#include <string.h>

struct date_en{
	int dd,mm,yy;
};

struct data{
	int id;
	char name[20];
	char addy[30];
	int age;
	struct date_en date;
};

add_new_rec(FILE *ptr)
{
	ptr=fopen("details.dat","a+");
	struct data info;
	printf("Enter ID: ");
	info.id=0;
	while(info.id < 1000 || info.id > 9999)
	{

		scanf("%d",&info.id);
	}
	printf("\nEnter Name: ");
	scanf(" %[^\n]",info.name);
	fflush(stdin);
	printf("\nEnter Addy: ");
	scanf(" %[^\n]",info.addy);
	fflush(stdin);
	printf("\nEnter age: ");
	scanf("%d",&info.age);
	printf("Enter date: ");
	scanf("%d",&info.date.dd);
	printf("/");
	scanf("%d",&info.date.mm);
	printf("/");
	scanf("%d",&info.date.yy);
	fwrite(&info,sizeof(struct data),1,ptr);
	fclose(ptr);
	return 0;
}

void view_all_rec(FILE *fptr)
{
	struct data info;
	fptr=fopen("details.dat","r");
	rewind(fptr);
	while(!feof(fptr) )
	{
		fread(&info,sizeof(struct data),1, fptr);
		printf("%d\n",info.id);
		printf("%s\n",info.name);
		printf("%s\n",info.addy);
		printf("%d\n",info.age);
		printf("%d/%d/%d",info.date.dd,info.date.mm,info.date.yy);
		printf("press any key for next record!");
		getch();
	}
	fclose(fptr);
}

void view_rec(FILE *ptr)
{
	struct data info;
	ptr=fopen("details.dat","r");
	int searchkey;
	printf("Input ID no to search");
	scanf("%d",&searchkey);
//	rewind(ptr);
	while(!feof(ptr) )
	{
		fread(&info,sizeof(struct data),1, ptr);
		if (info.id == searchkey)
		{
			printf("%d\n",info.id);
			printf("%s\n",info.name);
			printf("%s\n",info.addy);
			printf("%d\n",info.age);
			printf("%d/%d/%d",info.date.dd,info.date.mm,info.date.yy);
			getch();

		}
	}
	fclose(ptr);
}


int print_menu()
{
	int choice;
	printf("##########################\n");
	printf("#   1.Add New Record     #\n");
	printf("#   2.View Record        #\n");
	printf("#   3.View all Record               #\n");
	printf("##########################\n");
	printf("Please choose what option you want:");
	scanf("%d",&choice);
	return choice;
}

main()
{
	FILE *ptr;
	char dum;
	int choose;
	if((ptr = fopen ("details.dat","r"))==NULL){
		ptr = fopen ("details.dat","w");
	}
	do {
	choose=print_menu();
	switch(choose)
		{
			case 1: add_new_rec(ptr);
				break;
			case 2: view_rec(ptr);
				break;
			case 3:
					view_all_rec(ptr);
					break;
			default:
				printf("Error - Wrong Option!");
				scanf("%c",&dum);
				getch();
				clrscr();
		}
	} while (choose !=3);
	return 0;
}