我正在从一个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++相当新,并且我已经陷入了这个问题中一段时间。有人能告诉我我做错了什么,或者指引我更好的方向吗?