我有一个字符数组,其中包含随机位置的空字符。我尝试使用以下方式创建iStringStream,使用该数组(encodedData_arr):
我使用这个iStringStream将二进制数据(Iplimage的图像数据)插入到MySQL数据库blob字段中(使用MySQL Connector/C++的setBlob(istream *is)),它只存储到第一个空字符为止。
是否有一种方法可以使用带有空字符的char数组创建iStringStream?
unsigned char *encodedData_arr = new unsigned char[data_vector_uchar->size()];
// Assign the data of vector<unsigned char> to the encodedData_arr
for (int i = 0; i < vec_size; ++i)
{
cout<< data_vector_uchar->at(i)<< " : "<< encodedData_arr[i]<<endl;
}
// Here the content of the encodedData_arr is same as the data_vector_uchar
// So char array is initializing fine.
istream *is = new istringstream((char*)encodedData_arr, istringstream::in || istringstream::binary);
prepStmt_insertImage->setBlob(1, is);
// Here only part of the data is stored in the database blob field (Upto the first null character)
istream
构造函数中使用static_cast
?像这样使用也可以正常工作:std::istream(&m)
。 - mavam