【发布时间】:2017-07-05 08:20:29
【问题描述】:
我想读取用户输入并验证它是否与“user.txt”记录匹配,如果匹配则会提示用户错误消息,但scanf读取的数据总是会变成随机的号码,这是代码。对不起,我的英语不是以英语为母语的人
int day,month,year;
char name[15];
printf("Enter your name\n");
scanf(" %[^\n]s",name);
printf("Enter you birthday(dd/mm/yyyy)\n");
scanf("%d%*[-/]%d%*[-/]%d",&day,&month,&year);
printf("Enter your contact number (60-)\n");
scanf("%d",&contactNumber);
printf("Enter your postcode\n");
scanf("%d",&postcode);
char x [30];
int y,z,w,d;
int duplicateContactNum [15];
int checkSentinel=0;
filepointer=fopen("user.txt","r");
if(filepointer==NULL){
//Not exist,Print exception message
printf("Exception Occur: Error writing text into the text file");
}
while(!feof(filepointer))
{
fscanf(filepointer,"%s;%d/%d/%d;%d;%d\n",x,&y,&z,&w,&duplicateContactNum,&d);
if(strcmp(contactNumber,duplicateContactNum)==0)
{
checkSentinel++;
break;
}
}
if(checkSentinel!=0)
{
rewind(filepointer);
printf("You have entered a duplicated entry\n");
fclose(filepointer);
}
else
{
rewind(filepointer);
fclose(filepointer);
filepointer=fopen("user.txt","a");
fprintf(filepointer,"%s;%d/%d/%d;%d;%d\n",name,day,month,year,contactNumber,postcode);
fclose(filepointer);
}
【问题讨论】: