在 turbo c 中搜索二进制文件
Search in binary file in turbo c
我想在 C++ 中搜索二进制文件。但这总是说:"Not found!".
我的代码:
struct {
char name[20];
char family[20];
char address[100];
char birthday[8];} members[100];
clrscr();
pt=fopen("members.dat","r");
rewind(pt);
char searchName[20];
int found=0;
printf("Please enter search word \n");
scanf("%s", &searchName);
int i=0;
while(!feof(pt)){
i++;
fseek (pt,sizeof(members[i]), 0);
fread(&members[i], sizeof(members[i]), i,pt);
if(searchName==members[i].name){
found=1;
break;}
}
clrscr();
if(found==1){
printf("Found! \n");
printf("%s \n", members[1].name);
printf("%s \n", members[1].family);
printf("%s \n", members[1].address);
printf("%s \n", members[1].birthday);
}
if(found==0){
printf("Not Found");
}
有什么问题?那应该是成员结构的搜索名称。
使用strcmp
函数比较字符串。
int strcmp(const char *s1, const char *s2);
参见 strcmp 的手册页 here.
我想在 C++ 中搜索二进制文件。但这总是说:"Not found!".
我的代码:
struct {
char name[20];
char family[20];
char address[100];
char birthday[8];} members[100];
clrscr();
pt=fopen("members.dat","r");
rewind(pt);
char searchName[20];
int found=0;
printf("Please enter search word \n");
scanf("%s", &searchName);
int i=0;
while(!feof(pt)){
i++;
fseek (pt,sizeof(members[i]), 0);
fread(&members[i], sizeof(members[i]), i,pt);
if(searchName==members[i].name){
found=1;
break;}
}
clrscr();
if(found==1){
printf("Found! \n");
printf("%s \n", members[1].name);
printf("%s \n", members[1].family);
printf("%s \n", members[1].address);
printf("%s \n", members[1].birthday);
}
if(found==0){
printf("Not Found");
}
有什么问题?那应该是成员结构的搜索名称。
使用strcmp
函数比较字符串。
int strcmp(const char *s1, const char *s2);
参见 strcmp 的手册页 here.