我有一个 char 数组,其中包含随机位置的空字符。我尝试使用这个数组(encodedData_arr)创建一个 iStringStream,如下所示,
我使用这个 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)