while(fscanf(f, "%s %s", logIn, pass) == 2){
i = tabela_insere(logPass, logIn, pass);
if(i != 0);
{
tabela_apaga(logPass);
printf("%d diferente de 0???\n", i);
return;
}
}
非常直白:这里有什么问题?
因此,如果该函数“tabela_insere()”的结果与0不同,则此循环仅打印任何内容,但正如我们从printf结果中看到的那样,我是0 ...为什么打印呢?
我认为这不重要但是这里使用了所有变量类型:
int i; //not a global variable aka can't be changed in the function
char logIn[26],
pass[26];
tabela_dispersao *logPass; //it's an hash table
我正在使用MinGW进行编译,没有错误或警告。
答案 0 :(得分:1)
if语句后面有一个分号导致问题。
if (i!=0);
{
//this will always execute
}
将其更改为
if (i!=0)
{
//this will execute if i != 0
}
编译器不会警告您,因为第一个语句在语法上是有效的。