2013-11-26 68 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”。但即使我输入了有效的会员ID,但似乎不工作。会员身份

+0

也符,换行符ŧ韩是否包含在会员中? – BLUEPIXY

回答

0

您拨打fgets时最多只能读取10 - 1 = 9个字符,这意味着您读取的10个字符的ID将会丢失其最后一个字符。此外,您的字符串只能保存9个字符+一个\0终止符。

变化:

char membership[10],memberID[10]; 

到:

char membership[11],memberID[11]; 

和变化:

fgets(membership,10,member); 

到:

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

这只工作正常当成员身份证号码在顶行,所以我必须添加,以便循环可以扫描我的.txt文件中的每个成员身份证号码? –

+0

您需要提出一个新问题来解决这个问题,因为它比在评论中可以合理回答的问题更详细。 –