Need some help with beginner C++ code:
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
LONG __cdecl main(LONG Argc, char* Argv[])
{
if (Argc == 8 && stricmp(Argv[1], "sendir") == 0){
int nDeviceID;
unsigned short nUsage, nUsagePage;
BYTE nIRBlink, nMsgCode, nHidReportID;
sscanf_s(Argv[2], "%d", &nDeviceID);
sscanf_s(Argv[3], "%4hhx", &nUsage);
sscanf_s(Argv[4], "%4hhx", &nUsagePage);
sscanf_s(Argv[5], "%2hhx", &nHidReportID);
sscanf_s(Argv[6], "%2hhx", &nIRBlink);
sscanf_s(Argv[7], "%2hhx", &nMsgCode);
printf("param: %d, %d, %d, %d, %d, %d\n", nDeviceID, nUsage, nUsagePage, nHidReportID, nIRBlink, nMsgCode);
}
return 0;
}
So I type in cmd prompt: test.exe sendir 2 0001 ff00 06 01 01
I got: param: 2, 1, 65280, 0, 0, 1
Ideally I would want: param: 2, 1, 65280, 6, 1, 1
I think the problem is how I am using sscanf...