2012-03-04 64 views
-4

我有陣列功能的問題.. - 我把我的Mac在第一行,然後說我approved,但如果是在第二行rejected。我真正的一個是B6。 /地址下來不是赫德文件中的設置真正../C++數組 - 只使用第一行

>

#define CLIENTSNUMBER 2

BOOL Checking2(LPCSTR MacID);

CPP>

char ClientMacs[CLIENTSNUMBER*1][18] = { 
    "5A-77-77-97-87-B7", 
    "5A-77-77-97-87-B6" 
    }; 

BOOL Checking2(LPCSTR MacID) 
{ 
    for(int x=0;x<CLIENTSNUMBER;x++) 
    { 
     if(!strcmp(MacID,ClientMacs[x])) 
      { 
      MessageBoxA(NULL,MacID,"APPROVED!",MB_OK); 
      return false; 
     } else { 
      MessageBoxA(NULL,MacID,"REJECTED!",MB_OK); 
      return false; 
     } 
    } 
    return false; 
} 
+0

你刪除了你的問題的正文? – 2012-03-04 18:10:40

+0

我已回滾編輯以恢復代碼體。 @Valtentin,在問題得到解答後,你不應該刪除代碼; Stack Overflow的要點是建立一個問題和答案庫,刪除問題使得答案無用。 – SCFrench 2012-03-05 02:48:37

回答

1

因爲你從你的函數返回(突破你的循環)當有匹配或不匹配匹配。它永遠不會實際循環。

編輯,因爲一個緩慢的早晨是:

你需要經過整個陣列,並宣佈它拒絕前看看在比賽的每一個元素:

BOOL Checking2(LPCSTR MacID) 
{ 
    for(int x=0;x<CLIENTSNUMBER;x++) 
    { 
     if(strcmp(MacID,ClientMacs[x]) == 0) 
     { 
      MessageBoxA(NULL,MacID,"APPROVED!",MB_OK); 
      return false; 
     } 
    } 

    MessageBoxA(NULL,MacID,"REJECTED!",MB_OK); 
    return false; 
} 

另外,你真的意思是在兩種情況下都返回false?我會假設,如果你找到一個匹配,它應該返回true

+0

你能解釋我如何解決代碼? – Valter 2012-03-04 16:55:17

+0

@Valtentin - 請參閱編輯。 – 2012-03-04 17:03:25

+0

是啊,認可後必須是真的.. tnx,現在的作品。 – Valter 2012-03-04 17:03:30