【发布时间】:2019-12-29 11:20:42
【问题描述】:
我正在使用 C++ 代码通过 USB 从电子板上读取一些二进制输出。输出存储在无符号字符缓冲区中。当我尝试打印该值或将其写入输出文件时,我得到的是虚拟输出而不是十六进制和二进制值,如下所示:
햻"햻"㤧햻"㤧햻"햻"㤧
这是输出文件声明:
f_out.open(outfilename, ios::out);
if (false == f_out.is_open()) {
printf("Error: Output file could not be opened.\n");
return(false);
}
这是输出命令:
xem->ReadFromPipeOut(0xA3, 32, buf2);
f_out.write((char*)buf2, 32);
//f_out << buf2;
"xem" 是一个用于 USB 通信的类。 ReadFromPipeOut 方法,从板上读取输出并将其存储在缓冲区 buf2 中。这是main里面的buffer定义:
unsigned char buf2[32];
【问题讨论】:
-
是什么让你认为它是“虚拟”输出?
-
事实上,当您查看字符串的二进制格式时,它似乎是正确的。但是,输出二进制是相反的。有关输出函数行为的更多信息,请参阅其他 cmets。谢谢
-
我读过它们 - 我试图教你不要将意外输出视为“虚拟”输出:)