我正在将 HID 设备中的多个报告读取unsigned char
到std::vector
. 我还将数据写入一个文件以进行十六进制分析,当我查看它时,其内容似乎是正确的。但是,std::vector
当我将其转储到控制台时,它似乎不包含正确的数据。
这是代码:
typedef vector<unsigned char> buffer_t;
buffer_t sendCommand (hid_device *devh, const unsigned char cmd[], int reports) {
unsigned char outbuf[0x40];
buffer_t retbuf(0x40 * reports);
hid_write(devh, cmd, 0x41);
int i;
FILE *file = fopen("test.out", "w+b");
while (i++ < reports) {
hid_read(devh, outbuf, 0x40);
fwrite(outbuf, 1, sizeof(outbuf), file);
retbuf.push_back(*outbuf);
}
fclose(file);
cout << &retbuf[0];
return retbuf;
}
我有一种感觉,我在这里离题了;我对 C/C++ 相当陌生,而且我已经坚持了一段时间了。谁能告诉我我做错了什么,或者为我指出一个更好的方向?