C++ 将无符号字符*转换为std::istream*C++;

C++ 将无符号字符*转换为std::istream*C++;,c++,C++,我必须将二进制数据(unsigned char*)传递给以std::istream为参数的函数PerformRequest。什么是最好的 unsigned char* data // has the binary data PerformRequest(std::istream* in) { //some implementation } 您可以使用来自的std::stringstream,它支持istream和ostream接口。因此,您可以通过ostream-接口写入数据,然后将

我必须将二进制数据(unsigned char*)传递给以std::istream为参数的函数PerformRequest。什么是最好的

unsigned char* data // has the binary data

PerformRequest(std::istream* in)
{
    //some implementation
}

您可以使用来自
std::stringstream
,它支持
istream
ostream
接口。因此,您可以通过
ostream
-接口写入数据,然后将其作为
istream
-参数传递:

#include <sstream>
#include <iomanip>
#include <iostream>

void prints(istream &is) {
    unsigned char c;
    while (is >> c) {
        std::cout << "0x" << std::hex << (unsigned int)c << std::endl;
    }
}

int main()
{
    unsigned char x[6] = { 0x2, 0x10, 0xff, 0x0, 0x5, 0x8 };
    std::stringstream xReadWrite;
    xReadWrite.write((const char*)x, 6);
    prints(xReadWrite);
}
#包括
#包括
#包括
无效打印(istream和is){
无符号字符c;
while(is>>c){

std::cout您可以使用
中的
std::stringstream
,它支持
istream
ostream
接口。因此,您可以通过
ostream
接口写入数据,然后将其作为
istream
参数传递:

#include <sstream>
#include <iomanip>
#include <iostream>

void prints(istream &is) {
    unsigned char c;
    while (is >> c) {
        std::cout << "0x" << std::hex << (unsigned int)c << std::endl;
    }
}

int main()
{
    unsigned char x[6] = { 0x2, 0x10, 0xff, 0x0, 0x5, 0x8 };
    std::stringstream xReadWrite;
    xReadWrite.write((const char*)x, 6);
    prints(xReadWrite);
}
#包括
#包括
#包括
无效打印(istream和is){
无符号字符c;
while(is>>c){

std::无法查看
stringstream
。请查看
stringstream