我在比较两个变量时遇到了一些麻烦,希望有人能帮忙。比较两个变量C
基本上我做的是:
printf("\n\n +* Introduza o %d Prato:", i + 1);
scanf("%s", &pratos_novo->prato);
ver=verifica_prato(pratos_novo->prato);
if(ver == 1)
/*PROCESS*/
我把M1当记者问,因为它在.bin文件存在
函数调用:
int verifica_prato(char* p) {
k = (struct item*) malloc(sizeof(item));
while((fread(k, 1, sizeof(item), f)) != NULL) {
if((*k).id == p){
fclose(f);
return 1;
}
}
fclose(f);
return 0;
}
我的目标是返回1当我把M1。
结构项目:
struct item{
char id[5];
int ing[10];
float qtd[10];
};
的问题是在这里:(*k).id==p)
,该值是绝不相同的,我100%肯定M1确实在.bin文件存在。
(1)'而((的fread(K,1,的sizeof(项目)中,f))!= NULL){'的fread()不返回一个指针。 (2)'if((* k).id == p){'。这样做的速记是'如果(K-> ID == p)的',和(3)p是一个指针,所以你需要的strcmp()/ memcmp()对正如其他人说。 – wildplasser