2013-11-26 2 views
0
char membership[10],memberID[10]; 
int c; 
float AfterDiscount; 

printf("\nEnter Your Membership ID to get 5 percent discount: "); 
scanf(" %s",&memberID); 
member=fopen("Membership.txt","r"); 
fgets(membership,10,member); 
    if(strcmp(membership,memberID)==0) 
     { 
     AfterDiscount=final*0.95; 
     printf("Your final price after 5 percent discount is RM%6.2f",AfterDiscount); 
     printf("Thank you to come again, our honour member."); 
     fclose(member); 
     return AfterDiscount; 
     } 

printf("The Member ID is not exist. Please kindly contact the adminstrator, 03-XXXXXXX\n"); 
fclose(member); 
return 0; 

Я хотел бы указать на существование членства, которое сформировалось в шаблоне «B123456789». И я создал список членов и назвал «Membership.txt». Но, похоже, не работает, хотя я ввел действительный идентификатор членства.Идентификация участника

+0

также, новой строки чем могут быть включены в состав? – BLUEPIXY

ответ

0

Ваш номер fgets будет считаться не более 10 - 1 = 9 символов, что означает, что в десятизначном идентификаторе, который вы прочтете, будет отсутствовать его последний символ. Также ваши строки достаточно длинны, чтобы удерживать 9 символов + терминатор \0.

Изменение:

char membership[10],memberID[10]; 

к:

char membership[11],memberID[11]; 

и изменения:

fgets(membership,10,member); 

к:

fgets(membership,sizeof(membership),member); 
+0

Это только работает, когда идентификатор членства находится в верхней строке, так что я должен добавить, чтобы цикл мог сканировать каждый идентификатор членства в моем .txt-файле? –

+0

Чтобы решить эту проблему, вам нужно задать новый вопрос, поскольку он более подробный, чем можно разумно ответить в комментарии. –

Смежные вопросы