0

我必须将一个包含空字符的字节数组输入到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 []?谢谢你。

4

2 回答 2

1

ostream 插入器运算符用于格式化。如果您不想将数据打印为格式化字符串,则格式化插入运算符不是您想要的。

尝试改用 ostream write()成员函数。

于 2020-06-08T17:05:57.383 回答
1

我会检查写功能 - 参考这里http://www.cplusplus.com/reference/ostream/ostream/write/

于 2020-06-08T17:07:52.513 回答