C 会员身份识别
我想确定是否存在以“B123456789”模式形成的成员资格。我创建了一个会员列表,名为“membership.txt”。但是,即使我输入了有效的成员ID,似乎也无法工作。您对的调用将最多读取10-1=9个字符,这意味着您读取的10个字符的ID将丢失其最后一个字符。此外,字符串的长度仅足以容纳9个字符和一个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
\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);