我有一个问题来比较二进制文件与char文件的字符串,我不知道如何解决(我很新的cpp)。比较二进制字符串与字符串VC++
我有这个代码,以使一个dll:
char text[5];
DLL_EXPORT char *LIMGcheck(char *archivo){
FILE *origen = fopen(archivo, "r");
if(origen){
if(_fseeki64(origen, 0, SEEK_END)){
fclose(origen);
return "-1";
}else{
if(_fseeki64(origen, _ftelli64(origen)-16384, SEEK_SET)){
fclose(origen);
return "-1";
}else{
fread(text, sizeof(char), 4, origen);
fclose(origen);
//return text;
if (strncmp(text, "LIMG", 3)){
return "1";
}else{
//MessageBoxW(NULL, L"No tiene LIMG", L"AVISO:", MB_OK);
return "0";
}
}
}
}else{
return "-1";
}
}
如果我使用 “回归文本;”然后程序返回一个带有“LIMG”文本的字符串,但是当我尝试与字符串进行比较时,我得到了alwais错误。我尝试过:text ==“LIMG”,text == LIMGText(包含“LIMG”的char变量)和strncmp,并且总是得到相同的结果。提前
谢谢,也许是一个愚蠢,但即时通讯在CPP太新)
如果匹配,'strncmp'返回0。如果代码是'(0 == strncmp(text,“LIMG”,3))'? – suspectus 2013-04-28 12:15:53