如何将包含空字符的字节数组输入到 std::iostream 中?

问题描述 投票:0回答:1

我必须将一个包含空字符的字节数组输入到一个衍生的 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的派生函数中。

c++ arrays iostream null-character
1个回答
1
投票

ostream插入器操作符是用来格式化的。如果你不想把数据打印成格式化的字符串,那么格式化插入操作符就不是你想要的。

试试使用 ostream 写() 成员函数代替。


1
投票

我会检查一下写函数 -- 参考这里。http:/www.cplusplus.comreferenceostreamostreamwrite

© www.soinside.com 2019 - 2024. All rights reserved.