我得到一個錯誤,當我試圖爲我實施洛倫佐解碼機的輸入輸入:爲什麼我輸入時出錯? 「表達:串標超出範圍」
表達:串標超出範圍
爲什麼?
我也加載了一個.dat文件,其中有引腳設置。
這裏有一個部分,在那裏我認爲錯誤在於,我的代碼中:
string chi (string pinSettings, string code, int count)
{
if (count = 0)
{
chi1 = 0,;
}
compare1 = code[0];
if (chi1 + 351 >= 391)
{
chi1 = 0;
}
compare2 = pinSettings[chi1 +351];
int result = (compare1 - '0')^(compare2 - '0');
compare1 = code[1];
if (chi2 + 392 >= 423)
{
chi2 = 0;
}
chi1 ++;
chi2 ++;
string fPass;
fPass += (result+'0');
fPass += (result2+'0');
return fPass;
}
bool mu (string pinSettings, int count)
{
char compare1;
char compare2;
static int mu61, mu37;
if (count = 0)
{
mu61 = 0, mu37 = 0;
}
if (mu61 + 290 >= 351)
{
mu61 = 0;
}
compare1 = pinSettings[mu61 +290];
int compareInt1 = (compare1 - '0');
mu61++;
if (compareInt1 == 1)
{
mu37 ++;
if (mu37 + 253 >= 290)
{
mu37 = 0;;
}
compare2 = pinSettings[mu37 + 253 - 1];
int compareInt2 = (compare2 - '0');
if (compareInt2 == 1)
{
return true;
}
}
else
{
return false;
}
}
string psi (string pinSettings, int count, bool rotate, string code2)
{
char compare1;
char compare2;
static int psi1, psi2, psi3, psi4, psi5;
if (count == 0)
{
psi1 = 0, psi2 = 0, psi3 = 0, psi4 = 0, psi5 = 0;
}
if (rotate == true)
{
psi1++;
psi2++;
}
compare1 = code2[0];
if (psi1 >= 43)
{
psi1 = 0;
}
compare2 = pinSettings[psi1];
int result = (compare1 - '0')^(compare2 - '0');
compare1 = code2[1];
if (psi2 + 43 >= 90)
{
psi2 = 0;
}
compare2 = pinSettings[psi2 + 43];
int result2 = (compare1 - '0')^(compare2 - '0');
string fPass;
fPass += (result+'0');
fPass += (result2+'0');
return fPass;
}
你有沒有試圖調試你的代碼?你可能試圖縮小它一下.. – LihO
yeahh這是太多代碼 – ScarletAmaranth
好吧現在只需要通過嘗試和縮小代碼 – user3084931