我在比較兩個變量時遇到了一些麻煩,希望有人能幫忙。比較兩個變量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