C 会员身份识别

C 会员身份识别,c,file-io,C,File Io,我想确定是否存在以“B123456789”模式形成的成员资格。我创建了一个会员列表,名为“membership.txt”。但是,即使我输入了有效的成员ID,似乎也无法工作。您对的调用将最多读取10-1=9个字符,这意味着您读取的10个字符的ID将丢失其最后一个字符。此外,字符串的长度仅足以容纳9个字符和一个\0终止符 更改: char membership[10],memberID[10]; int c; float AfterDiscount; printf("\nEnter Your Me

我想确定是否存在以“B123456789”模式形成的成员资格。我创建了一个会员列表,名为“membership.txt”。但是,即使我输入了有效的成员ID,似乎也无法工作。

您对的调用将最多读取10-1=9个字符,这意味着您读取的10个字符的ID将丢失其最后一个字符。此外,字符串的长度仅足以容纳9个字符和一个
\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;
致:

和变化:

char membership[11],memberID[11];
致:


此外,成员资格中可能包含的换行符比?这仅在成员资格id位于顶行时有效,因此我必须添加什么,以便循环可以扫描我的.txt文件中的每个成员资格id?您需要提出一个新问题来解决此问题,因为它比在评论中合理回答的更详细。
char membership[11],memberID[11];
fgets(membership,10,member);
fgets(membership,sizeof(membership),member);