2013-11-26 63 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

您需要提出一個新問題來解決這個問題,因爲它比在評論中可以合理回答的問題更詳細。 –