我想在這方面像這樣的sprintf一些發現網絡MAC地址的MAC地址的sprintf:可用網絡
`WiFi connection settings:
MAC: 00 1E C0 10 3B 19
SSID: css`
我的代碼是:
char buf[32];
BYTE MAC[64];
int i;
for(i=1;i<15;i++)
{
MyScanResults = WFScanList(i);
sprintf(buf,"%s", MyScanResults.ssid);
sprintf(&MAC[i*2],"%02x", MyScanResults.bssid[i]);
_dbgwrite("SSID: ");
_dbgwrite(buf);
_dbgwrite("\n");
_dbgwrite("MAC: ");
_dbgwrite(MAC);
}
和錯誤是:
C:\ Users \ h \ Desktop \ WiFi test \ taskFlyport.c:22:warning:'sprintf'參數1中的指針對象在簽名方面不同<
C:\用戶\^h \桌面\ WiFi測試\ taskFlyport.c:27:警告:指針目標在通過的 '_dbgwrite' 參數1符號性<
不同的是有沒有人告訴我我的問題在哪裏? 感謝,視
謝謝你的回覆。我根據相關結構定義寫了字節,現在我沒有任何警告,但是我的結果是一樣的,就像:MAC:?? 5217356f和MAC:?? 5217 – J2015
@HOsseiNSA This是因爲你的循環以'i = 1'開始,導致你跳過'MAC'中的兩個第一個字符。 – unwind
@HOsseiNSA - 添加代碼。請注意,您使用的printf格式不適用於大數字(64位)。在答案中查看我的演示代碼。 – egur