我有一個問題來比較二進制文件與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