我有方法添加,效果很好,也有方法视图,它可以工作 用这种方法
void search(){
FILE* fr;
fr=fopen("record.txt","r");
Record r;
char na[10];
printf(" Enter the name:... ");
scanf("%s",na);
while(fread(&r,sizeof(r),1,fr)){
if(strcmp(na,r.name))
printf(" A match has been found ... ");
printf("%s %s %s \n",r.name,r.email,r.phoneNum);
}
fclose(fr);}`
我不知道怎么了! 我有一个结构,里面有一个名称数组 我要求用户输入名称,然后将其写入文件 如果我搜索特定名称 该方法将打印全名!
我该怎么办?
***记录是一个结构,但我使用typedef重命名
答案 0 :(得分:1)
if括号中没有printf("%s %s %s \n",r.name,r.email,r.phoneNum);
,因此它将显示每个名称,而不仅仅是匹配的名称。
此外,如果匹配,strcmp将返回0,因此,当找不到匹配项时,当前printf(" A match has been found ... ");
正在执行。