سلام این برنامه یه دفتر تلفن هست که نوشتم چند تا سوال دارم اگه ممکنه جواب بیدید............
این برنامه یه نام و تلفن و ایمیل میگیره و درون یه فایل ذخیره ممکنه..........
سوال اول؟
من میخوام درون تابع insert تا زمانی که flag=y هست این کار ادامه داشته باشه یعنی با فشار کارکتر y دوباره ورودی جدیدی بگیره و در غیر این صورت به menu برنامه برگردد ولی کارکتر قبول نمیکنه و مجبور شدم از نوع int استفاده کنمflag=1 و مقایسه عددی انجام بدم به چه دلیل قبول نمیکنه ...................
سوال دوم؟
داخل یک تابع مگه نمیشه یه تابع دیگر رو صدا زد لطفا به قسمت تابع menu یه نگاهی کنید چون تابع show رو صدا نمیزنه
راستی تابع show درست نوشتم.
ممنون میشم راهنمایی کنید..........
کد:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct cust_st
{
char name[20];
char phonenum[30];
char email[20];
};
//+++++++++++++++++++++++++++++++++++++++++++++++++++++
void insert()
{
FILE *fp;
int flag=1,flag2;
struct cust_st custdata;
clrscr();
if((fp=fopen("d:\hassan","a+"))==NULL)
{
printf("\nERROR opening customer file");
getch();
return;
}
gotoxy(1,1);
printf("---------------------------<Menu Insert>-------------------------");
gotoxy(1, 2) ;
printf("Name: Phone: Email: ");
gotoxy(1, 3) ;
printf("-------------- --------------- -----------------------");
int i=4;
while(flag==1)
{
i++;
gotoxy(1, i) ;
scanf("%s",&custdata.name);
gotoxy(21, i);
scanf("%s",custdata.phonenum);
gotoxy(43, i) ;
scanf("%s",&custdata.email);
fwrite(&custdata,sizeof(struct cust_st),i,fp);
gotoxy(1,19);
printf("------------------------------------------------------------------");
gotoxy(1, 20) ;
printf("Add another?(y(1)/n):");
scanf("%d",&flag2);
//if(flag!=flag2)
//disply(t);
}
fclose(fp);
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++
void menu()
{
gotoxy(1,1);
printf("---------------------------<Phone Book>---------------------------");
char in;
printf("\n1.Insert\n\n");
printf("2.Find\n\n");
printf("3.Show\n\n");
printf("4.Exit\n\n");
gotoxy(1,9);
printf("------------------------------------------------------------------");
gotoxy(1,10);
printf("Enter any choice numbers(1-4):");
gotoxy(1,11);
printf("------------------------------------------------------------------");
gotoxy(31,10);
scanf("%c",&in);
switch(in)
{
case '1':
insert();
break;
case '2':
printf("Find the name:\n");
printf("Find the Phone number:");
break;
case '3':
show();
//printf("Find the Phone number:");
break;
default:
printf("Enter any (1-4) numbers:");
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++
void show()
{
FILE *fp;
struct cust_st custdata;
int fag=1;//=========>char flag='n';
clrscr();
if((fp=fopen("d:\hassan","r"))==NULL)
{
printf("\nERROR opening customer file");
getch();
return;
}
gotoxy(1,1);
printf("---------------------------<Menu Show>-------------------------");
gotoxy(1, 2) ;
printf("Name: Phone: Email: ");
gotoxy(1, 3) ;
printf("-------------- --------------- -----------------------");
//int i=4;
while((fread(&custdata,sizeof(struct cust_st),1,fp))==1)
{
int flag=2;
printf("\n%s\t%s\t%s",custdata.name,custdata.phonenum,custdata.email);
if(flag==1)
printf("\n No account the file");
}
//getch();
fclose(fp);
return ;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++
void main()
{
menu();
}