2013-12-10 40 views
0

我得到一個錯誤,當我試圖爲我實施洛倫佐解碼機的輸入輸入:爲什麼我輸入時出錯? 「表達:串標超出範圍」

表達:串標超出範圍

爲什麼?

我也加載了一個.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; 
    } 
+1

你有沒有試圖調試你的代碼?你可能試圖縮小它一下.. – LihO

+3

yeahh這是太多代碼 – ScarletAmaranth

+0

好吧現在只需要通過嘗試和縮小代碼 – user3084931

回答

0

使用調試器。你不會說你在開發什麼平臺,但常見的是Microsoft Visual Studio,Mac OS X和Linux。

在Visual Studio中以調試模式運行。設置調試設置以停止C++異常。

在Linux中使用GDB。編譯gcc -ggdb -O0,以gdb ./program運行並輸入catch throw然後run

在OS X中,我忘記了確切的步驟,但它們與Visual Studio相似。一旦你安裝了開發者工具,你也可以從命令行使用GDB。

+0

有助於最終解決問題的歡呼聲 – user3084931

相關問題