搜索功能打印我找到的行的下一行! C语言编程

时间:2018-11-15 20:51:05

标签: c file struct strcmp

我有方法添加,效果很好,也有方法视图,它可以工作 用这种方法

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重命名

1 个答案:

答案 0 :(得分:1)

if括号中没有printf("%s %s %s \n",r.name,r.email,r.phoneNum);,因此它将显示每个名称,而不仅仅是匹配的名称。

此外,如果匹配,strcmp将返回0,因此,当找不到匹配项时,当前printf(" A match has been found ... ");正在执行。