2012-03-04 62 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