我必须将一个包含空字符的字节数组输入到一个衍生的 std::iostream
. 原始数据看起来如下。
FF 73 00 05 73
我把这块数据存进了一个char数组。
char *tmc_command = new char [5]; // array size may vary
SerialStream tmc_receiver_handler; // a derivative of std::iostream
tmc_command [1] = 0xFF;
tmc_command [1] = 0x73;
tmc_command [2] = 0x00; // NULL character, eeeeeehhhh!!! :-(
tmc_command [3] = 0x05;
tmc_command [4] = 0x73;
instance -> tmc_receiver_handler << tmc_command;
不幸的是,当这样做的时候,由于空字符的存在,输出停止在第2位。
由于这只是一个字节数组,而不是一个真正的字符串,我怎样才能使流对象简单地吐出完整的数据呢?tmc_command
而不停留在空字符上?或者我应该使用不同的对象来代替这个 char []
? 谢谢你,我需要将一个包含空字符的字节数组输入到std::iostream的派生函数中。
ostream插入器操作符是用来格式化的。如果你不想把数据打印成格式化的字符串,那么格式化插入操作符就不是你想要的。
试试使用 ostream 写() 成员函数代替。
我会检查一下写函数 -- 参考这里。http:/www.cplusplus.comreferenceostreamostreamwrite